ClojureScript Leiningen 编译成单个 .js 文件?
ClojureScript Leiningen compile to a single .js file?
是否可以将 Leiningen 配置为将所有已编译的 JS 捆绑到一个文件中?目前它输出了一百多个文件,这在生产中会很慢。
顺便说一下,我正在使用 Chestnut boilerplate。文档说:
Q: I just want to compile ClojureScript to fully optimized JavaScript, so I can use it in a static HTML site.
A: Invoke cljsbuild with the uberjar profile active, like this: lein with-profile -dev,+uberjar cljsbuild once
, then look for resources/public/js/app.js
.
我试过了,但是结果app.js
仍然只是从其他文件加载依赖项,它不包含整个应用程序。
正如评论中指出的那样:确保使用以下其中一项 :optimizations
:
:whitespace
:simple
:advanced
您可以在 ClojureScript wiki 中找到更多信息:
https://github.com/clojure/clojurescript/wiki/Compiler-Options#optimizations
似乎 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}}}}}
显然,由于我自己的代码中的错误,它无法正常工作。
是否可以将 Leiningen 配置为将所有已编译的 JS 捆绑到一个文件中?目前它输出了一百多个文件,这在生产中会很慢。
顺便说一下,我正在使用 Chestnut boilerplate。文档说:
Q: I just want to compile ClojureScript to fully optimized JavaScript, so I can use it in a static HTML site.
A: Invoke cljsbuild with the uberjar profile active, like this:
lein with-profile -dev,+uberjar cljsbuild once
, then look forresources/public/js/app.js
.
我试过了,但是结果app.js
仍然只是从其他文件加载依赖项,它不包含整个应用程序。
正如评论中指出的那样:确保使用以下其中一项 :optimizations
:
:whitespace
:simple
:advanced
您可以在 ClojureScript wiki 中找到更多信息: https://github.com/clojure/clojurescript/wiki/Compiler-Options#optimizations
似乎 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}}}}}
显然,由于我自己的代码中的错误,它无法正常工作。