Ich versuche, einige JS-Bibliotheken zu kompilieren, die wir mit lein-cljsbuild haben, um sie in unsere ClojureScript-Codebasis zu integrieren. Zuerst habe ich etwas goog.provide oben in jeder Datei hinzugefügt, und die Dateien sind hierarchisch in einer Verzeichnisstruktur entsprechend ihrem Namespace organisiert (wie in Java). Das ist Namespace abc ist in src-js/libs/a/b/c.jsKompilieren von externen JS-Dateien mit Cljsbuild in ClojureScript
Ich habe die JS-Dateien in das Stammverzeichnis der Projekte in src-js/libs, und ich habe Folgendes: Compiler Optionen für 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}}
Keiner der JS-Dateien werden in der kompilierten-App-Datei kompiliert. Was ist los mit dir?
Ich habe auch versucht, sie in Ressourcen/closure-js/libs ohne Erfolg zu setzen.
Ich benutze lein-cljsbuild 0.3.0.
src-js (minus, nicht slash!) Ist nicht im Klassenpfad, also füge ich hinzu, um das zu tun. Sie müssen keine bestimmte Bibliothek angeben, Sie können ein Verzeichnis angeben, es funktioniert, aber ich hatte einen Fehler: Es kompiliert nicht automatisch die Datei in der Hierarchie. Siehe den Bugtracker von cljsbuild. Schließlich wurden meine Dateien nicht kompiliert, weil a) sie in einer cljs-Datei nicht benötigt wurden. b) Es gab einen Fehler mit einer Datei, die Minus-/Bindestrichsymbole enthielt. Siehe auch den Bug Tracker. – z1naOK9nu8iY5A
Ok, in der Tat ist es möglich, ein ganzes Verzeichnis anzugeben, um JS-Dateien zu kompilieren. Wie Sie bereits erwähnt haben, muss das Verzeichnis mit dem Schlüsselwort: lib und NICHT im Quellpfad angegeben werden. In meinem Beispiel: libs sollte "src-js/libs" sein und dann funktioniert es. – z1naOK9nu8iY5A