私はlein-cljsbuildで持っているいくつかのJSライブラリをコンパイルして、ClojureScriptコードベースでそれらを統合しようとしています。最初にgoog.provideを各ファイルの先頭に追加しました。ファイルは、Javaのように名前空間に従ってディレクトリツリーに階層的に整理されています。それは名前空間です。abcはsrc-js/libs/a/b/c.jsにあります。ClojureScriptでCljsbuildを使用して外部JSファイルをコンパイル
私はJSファイルをsrc-js/libsのプロジェクトのルートディレクトリに置いています。レイン-cljsbuildのオプション:JSファイルの
{:id "prod",
:source-paths ["src-cljs" "src-js"]
:compiler
{:pretty-print false,
:libs ["libs/"]
:output-to "resources/public/js/compiled-app.js",
:optimizations :simple}}
なしコンパイルアプリのファイルにコンパイルされなかっます。どうしましたか?
私はまた、リソース/ closure-js/libsにそれらを成功させることなく入れようとしました。
私はlein-cljsbuild 0.3.0を使用しています。
src-js(マイナス、スラッシュではありません)はクラスパスに含まれていないので、追加します。 特定のライブラリを指定する必要はありません。ディレクトリを指定することはできますが、動作しますが、バグがあります。自動的に階層内のファイルは再コンパイルされません。 cljsbuildのバグトラッカーを参照してください。 最後に、私のファイルはコンパイルされませんでした。これは、a)cljsファイルでは必要ないためです。 b)マイナス/ハイフン記号を含むファイルのバグがありました。バグトラッカーも参照してください。 – z1naOK9nu8iY5A
確かに、JSファイルをコンパイルするためにディレクトリ全体を指定することは可能です。あなたが言及したように、ディレクトリは:source-pathではなく:libキーワードで指定する必要があります。私の例では、libsは "src-js/libs"でなければなりません。 – z1naOK9nu8iY5A