2017-02-13 20 views
3

我有一些标准的Ring应用程序和一些Compojure RESTfull端点。我们还有一个基于Polymer,Bower和Gulp的前端应用程序。所以我认为将这个应用程序分发到一个包中是很好的做法(这意味着最终生成一个包含后端和前端部分的WAR文件,这个WAR文件可以在没有任何其他依赖的情况下上传到任何地方)。使用Leiningen构建Gulp前端

但是我开始深入Leiningen,显然没有支持这种需求的插件。所以在我要自己创建类似的东西之前,有没有其他方法可以做到这一点?或者我以错误的方式思考问题?

P.S.最终目标是将应用程序部署到AWS,我已经通过elastic-beanstalk插件完成了它,并且对我来说它非常流畅(只需构建WAR,将其传递给插件,并且其余部分都会考虑)。

回答

2

我建立了具有相似性的项目。我避免使用leiningen/lein-plugins构建前端,而是使用webpack构建它,同时让lein将clojure编译成uberjar。 webpack的构建工件被输出到project.clj中声明的资源路径中,并打包成一个uberjar。 Web服务器也捆绑在uberjar中,并被配置为从该路径服务。我使用luminus作为项目模板。

看来你可以在这里做类似的事情。使用gulp将前端和软件包构建成可以部署到弹性beanstalk的战争。我的package.json构建脚本是这样的:npm install && NODE_ENV=production webpack -p && lein uberjar

所以,你不需要有一个lein插件来构建你的前端。我发现让另一个构建工具做这件事更容易。