使用cljsbuild,我可以将所有.cljs文件编译为一个文件。但是,我希望能够选择一个输出目录,并将每个.cljs文件编译成自己的.js文件。如何指定?
答案 0 :(得分:3)
您可以使用“多个构建配置”:cljsbuild接受:builds
键的配置向量,其中每个元素定义用于编译单独的.js文件的规则(更多信息可以在lein-cljsbuild README中找到)。简单的例子:
:cljsbuild
{:builds
[;; Config for first .js file
{:source-paths ["dir-with-cljs-for-first-js"]
:compiler {:output-to "dir-for-js/first.js"}
;; Config for second .js file
{:source-paths ["dir-with-cljs-for-second-js"]
:compiler {:output-to "dir-for-js/second.js"}}]}
答案 1 :(得分:0)
您正在寻找:output-dir选项。我的cljsbuild看起来像这样:
:cljsbuild
{:builds
[{:id "dev"
:source-paths ["src/cljs"]
:compiler {:output-to "resources/public/js/site.js"
:output-dir "resources/public/js/out"
:source-map true :optimizations :none }}
{:id "main"
:source-paths ["src/cljs"]
:compiler {:pretty-print false
:output-to "resources/public/js/site.js"
:source-map "resources/public/js/site.js.map"
:optimizations :advanced}}]}
使用此配置,没有site.js已经编译/最新,lein cljsbuild once dev
或lein cljsbuild auto dev
将编译site.js,然后查看它' s依赖项没有被编译,并与它们的sourcemaps一起编译它们。如果site.js被编译并且是最新的,cljsbuild会认为在生成源地图等之前没有什么可以完成和终止。
我还强烈推荐lein figwheel进行cljs开发,并记得启用源映射。