2017-08-25 12 views
2

ユーザースクリプトはmetadata blockで始まる必要があります。どのようにLeiningenおよび/またはClojureScriptコンパイラを設定して、事前定義されたメタブロックを挿入することができますか?テキストファイルですか?ユーザスクリプトをサポートするLeiningen/ClojureScriptコンパイラの設定方法は?

私は、次の試してみました:

; test 
;; test 2 
(comment test 3) 

それは(おそらく{:optimizations :advanced}ため?)取り除いてしまいました。

私はClojureの全面的な知識を持っており、Leiningenについてはほとんど何も知らない(簡単なClojureScriptビルド機能を手に入れることができましたが、それはそれです - 私はClojureを私が実際に使うかもしれない単純なユーザスクリプトを書く)。

+0

ここに私の推測では、これがcljs /閉鎖でサポートされなければならないことを、です。それが生成されたファイルの先頭にある「テキストブロック」の場合は、コンパイル後に 'cat metadata compiled.js> metadata.js'ステップを実行します。 – cfrick

+0

はい、私はそれが直接それをサポートしているとは思わない。私はLeiningenとそれが何らかの種類のコンパイルフックをサポートしているかどうかを知りません(ビルドファイルはClojureにあるので、私はこのプロジェクトをClojureの学習に使用したいので、ちょっと難しいです)。私は、bashのスクリプトのような魔法のようなソリューションをLeiningenに呼び出して、その結果のファイルを操作することはしませんでした - それは間違っている、IMOはビルドツールで処理する必要があります(少なくとも私が使った他のビルドツールの推奨方法です遠い)。 – monnef

答えて

3

出力ファイルにデータブロックを付加するには、:preambleオプションを使用します。コンパイラオプションhereを見ることができます(ちょっと下をスクロールしてください...プリアンブルIDを持つ別のdivがあるため、プリアンブルセクションへのリンクは機能しません)。参考のため

は、ここでのドキュメントです:

:preamble

は、各出力ファイルに与えられたファイルの内容を付加します。 :none以外の最適化で有効なのは のみです。空のベクターへ

デフォルト[]

:preamble ["license.js"] 
+0

これは有望に見えます、悲しいことに私はそれを使用する方法を知らない - https://github.com/emezeske/lein-cljsbuild/issues/472。 – monnef

+1

'' license.js "'ファイルはresourcesフォルダに存在する必要があります。私はデフォルトがLeiningen( '' src/main/clojure ''や' 'src/main/cljs' ')で忘れていますが、' ':resource-paths'オプションを使って設定することができますLeiningenのhttps://github.com/technomancy/leiningen/blob/master/sample.project.clj#L303)をご覧ください。私はちょうど私のプロジェクトの1つでそれを試して、それは期待どおりに働いた。 – jszakmeister

関連する問題