Próbuję skompilować niektóre biblioteki JS, które mamy z lein-cljsbuild, aby zintegrować je z naszą bazą kodu ClojureScript. Najpierw dodałem plik goog.provide w górnej części każdego pliku, a pliki są hierarchicznie zorganizowane w drzewie katalogów zgodnie z ich przestrzenią nazw (jak w Javie). To jest przestrzeń nazw abc w src-js/libs/a/b/c.jsKompilowanie zewnętrznych plików JS z Cljsbuild w ClojureScript
Umieściłem pliki JS w katalogu głównym projektów w src-js/libs, a mam następujące: kompilator opcje dla lein-cljsbuild:
{:id "prod",
:source-paths ["src-cljs" "src-js"]
:compiler
{:pretty-print false,
:libs ["libs/"]
:output-to "resources/public/js/compiled-app.js",
:optimizations :simple}}
Żaden z plików JS nie jest wkompilowany w plik skompilowanej aplikacji. Co jest nie tak?
Próbowałem również umieścić je w zasobach/closure-js/libs bez powodzenia.
Używam lein-cljsbuild 0.3.0.
src-js (minus, bez ukośnika!) Nie znajduje się w ścieżce klas, więc dodam do tego. Nie musisz określać konkretnej biblioteki, możesz określić katalog, działa, ale mam błąd: nie rekompiluje automatycznie pliku w hierarchii. Zobacz narzędzie do śledzenia błędów w cljsbuild. W końcu moje pliki nie zostały skompilowane, ponieważ a) nie były wymagane w pliku cljs. b) wystąpił błąd związany z plikiem zawierającym symbole minus/łącznik. Zobacz także moduł do śledzenia błędów. – z1naOK9nu8iY5A
Ok naprawdę możliwe jest określenie całego katalogu do kompilacji plików JS. Jak już wspomniano, katalog musi być określony za pomocą: lib słowa kluczowego i NIE w: source-path. W moim przykładzie: libs powinno być "src-js/libs", a następnie działa. – z1naOK9nu8iY5A