2013-04-11 15 views

Odpowiedz

3

Można użyć "konfiguracji wielu kompilacji": cljsbuild akceptuje wektor konfiguracji dla klucza :builds, którego każdy element definiuje reguły kompilowania oddzielnego pliku .js (więcej informacji można znaleźć w lein-cljsbuild README). Prosty przykład:

: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

w jaki sposób uzyskać osobny plik .js dla każdego pliku .clj w "dir-with-cljs-for-first-js"? – zcaudate

+0

W tym przykładzie skompilowane zostaną dwa pliki .js: jeden ze źródeł .cljs w "dir-z-cljs-for-first-js", drugi - ze źródeł w "dir-with-cljs-for-second-js" . Nie ma możliwości utworzenia pliku .js dla każdego pliku w katalogu ("dir-with-cljs-for-first-js"), ale możesz umieścić wszystkie .cljs w oddzielnym podkatalogu (na przykład "dir -with-cljs-for-first-js/1 "," dir-z-cljs-for-first-js/2 "itd.) i ręcznie określ konfigurację kompilacji dla każdego takiego podkatalogu. – gsnewmark

0

Poszukujesz opcji: output-dir. Moja cljsbuild wygląda następująco:

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

Dzięki tej konfiguracji, a bez site.js już skompilowanych/aktualne, lein cljsbuild once dev lub lein cljsbuild auto dev skompiluje site.js, a następnie zobaczyć jego zależności nie są kompilowane i przejść skompiluj je wraz z ich sourcemaps. Jeśli plik site.js zostanie skompilowany i zaktualizowany, cljsbuild pomyśli, że nic nie da się zrobić i zakończyć przed wygenerowaniem map źródłowych, itp.

Gorąco polecam też lein figwheel do programowania cljs i pamiętaj, aby włączyć opcję sourcemaps.

Powiązane problemy