2012-10-14 9 views
9

私は次のことを持っている私のclojurescriptコードで:生産時にClojurescript repl/connectをコンパイルしないようにしますか?

(defn onload [] (repl/connect "http://localhost:9000/repl")) 

(set! (.-onload js/window) onload) 

ClojurescriptのREPLは、開発に非常に有用であるが、私は製造時にコードでそれを残すことを躊躇しています。上記のコードを開発中(シンプルコンパイル)に存在させる最もクリーンな方法はありますが、プロダクション中には存在しません(高度なコンパイル)。

答えて

3

現在のところ、ClojureScriptで条件付きコンパイルを行うための明確な方法はありません。

REPLをさまざまな方法で起動するかどうかを制御するために設定変数を追加することもできますが、現在のページのホスト名を取得するのが簡単で簡単な方法は、 "localhost"の場合はrepl/connnectあなたが開発作業に使用している他のどのドメインでも使用できます。

+0

大声で考えてみると、それはまた、repl/connectのコードもすべて私のプロダクションコードにコンパイルされることを意味します。私は正直なところ、コンパイルされたセグメントがどれだけ大きいのか分かりません。 –

1

私は、lein2プロファイルとcljsbuild src-paths mungingの組み合わせがこのトリックを行うことができると思います。たとえば、単にreplをロードするネームスペースを作成し、最終コンパイルのためにプロファイルを実行して除外する(おそらく別のsrc-pathディレクトリにダミーの名前空間を作成する必要があるかもしれない)。

7

チュートリアルでは実際にはhereの解決方法を正確に説明しています。

希望に役立ちます!

関連する問題