Sto provando a compilare alcune librerie JS che abbiamo con lein-cljsbuild per integrarle nel nostro codice ClojureScript. Per prima cosa ho aggiunto alcuni goog.provide in cima a ciascun file, e i file sono organizzati gerarchicamente in un albero di directory in base al loro spazio dei nomi (come in Java). Questo è namespace abc è in src-js/libs/a/b/c.jsCompilazione di file JS esterni con Cljsbuild in ClojureScript
Ho messo i file JS nella directory principale dei progetti in src-js/libs, e ho il seguente: compilatore opzioni per 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}}
Nessuno dei file JS viene compilato nel file di applicazione compilato. Cosa c'è che non va?
Ho anche provato a metterli in risorse/closure-js/libs senza successo.
Sto usando lein-cljsbuild 0.3.0.
src-js (meno, non barra!) Non è nel classpath, quindi aggiungo per farlo. Non è necessario specificare una particolare libreria, è possibile specificare una directory, funziona ma ho avuto un bug: non ricompila automaticamente il file nella gerarchia. Vedi il bug tracker di cljsbuild. Infine i miei file non sono stati compilati perché a) non erano richiesti in un file cljs. b) c'era un bug con il file contenente i simboli meno/trattino. Vedi anche il bug tracker. – z1naOK9nu8iY5A
Ok davvero, è possibile specificare un'intera directory per compilare i file JS. Come hai menzionato, la directory deve essere specificata con la parola chiave: lib e NOT in: source-path. Nel mio esempio: libs dovrebbe essere "src-js/libs" e quindi funzionerà. – z1naOK9nu8iY5A