ClojureScript Leiningen编译成单个.js文件?

时间:2015-08-22 20:57:14

标签: javascript build clojure leiningen clojurescript

可以将Leiningen配置为将所有已编译的JS捆绑到单个文件中吗?目前它输出的文件超过一百个,生产速度非常慢。

顺便说一句,我正在使用Chestnut boilerplate。文档说:

  

问:我只想编译ClojureScript以完全优化JavaScript,因此我可以在静态HTML网站中使用它。

     

答:调用cljsbuild并激活uberjar配置文件,如下所示:lein with-profile -dev,+uberjar cljsbuild once,然后查找resources/public/js/app.js

我已经尝试过,但结果app.js仍然只是从其他文件加载依赖项,它不包含整个应用程序。

2 个答案:

答案 0 :(得分:1)

正如评论中所指出:请确保使用以下:optimizations之一:

  • :whitespace
  • :simple
  • :advanced

您可以在ClojureScript wiki中找到更多信息: https://github.com/clojure/clojurescript/wiki/Compiler-Options#optimizations

答案 1 :(得分:1)

似乎lein with-profile -dev,+uberjar cljsbuild once确实生成了一个.js包。 :uberjar个人资料已设置:optimizations :advanced选项:

:uberjar {:source-paths ["env/prod/clj"]
                       :hooks [leiningen.cljsbuild]
                       :env {:production true}
                       :omit-source true
                       :aot :all
                       :main calc-pack.server
                       :cljsbuild {:builds {:app
                                            {:source-paths ["env/prod/cljs"]
                                             :compiler
                                             {:optimizations :advanced
                                              :pretty-print false}}}}}

显然,由于我自己的代码中的错误,它无法正常工作。