【问题标题】:Use Leiningen to build frontend with Gulp使用 Leiningen 通过 Gulp 构建前端
【发布时间】:2017-02-13 23:40:24
【问题描述】:
我有一个带有一些 Compojure RESTfull 端点的非常标准的 Ring 应用程序。我们还有一个基于 Polymer、Bower 和 Gulp 的前端应用程序。所以我认为将这个应用程序分发到一个包中会很好(这意味着有一个构建最终将生成一个 WAR 文件,该文件由后端和前端部分组成,可以在任何地方上传而无需任何其他依赖项)。
但是我开始深入研究 Leiningen,显然没有插件可以支持这种需求。因此,在我自己构建类似的东西之前,还有其他方法可以做到这一点吗?还是我以错误的方式思考问题?
附:最终目标是将应用程序部署到 AWS,我已经通过 elastic-beanstalk 插件完成了它,在我看来它非常顺利(只需构建 WAR,将其传递给插件,其余的会处理)。
【问题讨论】:
标签:
amazon-web-services
clojure
build
gulp
frontend
【解决方案1】:
我已经构建了相似的项目。我避免使用 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 插件来构建您的前端。我发现让另一个构建工具来完成这项工作更容易。