2013-04-11 133 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。

相關問題