2013-04-11 66 views

回答

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"}}]} 
+0

我怎么会得到一个单独的js文件在“DIR-与-cljs换第一-JS”每.clj文件? – zcaudate 2013-04-15 04:00:17

+0

在此例如两个.js文件将被编译:一个从.cljs来源“DIR-与-cljs换第一-JS”,第二 - 从来源“DIR-与-cljs换第二-JS” 。有没有办法来为目录中的每个文件(“DIR-与-cljs换第一-JS”)创建.js文件,但你可以放在一个单独的子目录每.cljs(例如,“DIR -with-cljs-for-first-js/1“,”dir-with-cljs-for-first-js/2“等)并手动指定每个这样的子目录的构建配置。 – gsnewmark 2013-04-17 13:57:07

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}}]} 

有了这个配置,并没有已经编译/最新lein cljsbuild once devlein cljsbuild auto dev将编译site.js site.js,然后看到它的依赖不会被编译和去编译它们以及它们的sourcemaps。如果site.js被编译并且是最新的,那么cljsbuild会认为没有什么可以做的,并且在生成源地图之前终止。

我也强烈建议lein figwheel用于cljs开发,并记得启用sourcemaps。

相关问题