2013-04-11 18 views

risposta

3

È possibile utilizzare "configurazioni di più build": cljsbuild accetta un vettore di configurazioni per la chiave :builds, ciascun elemento di cui definisce le regole per la compilazione del file .js separato (ulteriori informazioni potrebbero essere trovate in lein-cljsbuild README). Semplice esempio:

: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

come ottenere un file .js separato per ogni file .clj in "dir-with-cljs-for-first-js"? – zcaudate

+0

In questo esempio verranno compilati due file .js: uno proveniente da sorgenti .cljs in "dir-with-cljs-for-first-js", in secondo luogo - dalle origini in "dir-with-cljs-for-second-js" . Non c'è modo di creare il file .js per ogni file nella directory ("dir-with-cljs-per-first-js"), ma è possibile inserire ogni .cljs in una sottodirectory separata (ad esempio, "dir -with-cljs-per-first-js/1 "," dir-con-cljs-per-first-js/2 ", ecc.) e specifica manualmente una configurazione di compilazione per ciascuna sottodirectory. – gsnewmark

0

Stai cercando l'opzione output-dir. Il mio cljsbuild assomiglia a questo:

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

Con questa configurazione, e senza site.js già compilati/aggiornati, lein cljsbuild once dev o lein cljsbuild auto dev compilerà site.js, poi vedere è dipendenze non sono compilati e vanno compilarli insieme al loro sourcemaps. Se site.js è compilato e aggiornato, cljsbuild penserà che non c'è nulla da fare e terminare prima di generare mappe di origine, ecc.

Raccomando anche lo lein figwheel per lo sviluppo di cljs, e ricordarsi di abilitare le fonti.

Problemi correlati