ClojureScript

REPLオプション

ClojureScript REPLは、cljs.closure/buildに指定できるほとんど同じオプションを受け取ることができます。詳細については、コンパイラオプションを参照してください。このページでは、追加でサポートされているオプションについて説明します。

以下の「一般オプション」に記載されているオプションは、コンパイラオプションとして(cljs.mainを使用する場合は、-co / --compile-opts経由で)渡す必要があることに注意してください。一方、REPL環境固有のオプションは、REPLオプションとして(cljs.mainを使用する場合は、-ro / repl-opts経由で)渡す必要があります。

一般オプション

:analyze-path

REPLの初期化時に解析するソースパスを設定します。これにより、既に実行中のJavaScript環境に接続する場合、以前にロードされた名前空間のシンボルが使用可能になります。解析するパスのベクターに設定することもできます。

:analyze-path "src"

:def-emits-var

REPLで評価されたdef(および派生)フォームが、Varを返すか(trueに設定されている場合)、またはdefの初期値(falseの場合)を返すかを設定します。REPLで評価されたフォームにのみ影響します。コンパイルされたソースは、falseに設定されているかのように動作します。デフォルトはtrueです。

:def-emits-var false

:repl-requires

REPLの起動時に自動的にロードされるライブラリ仕様(require REPL特殊に準拠)のセットを指定します。デフォルトは、doc などppを参照する仕様です。

:repl-requires [[cljs.repl :refer-macros [source doc find-doc apropos dir pst]]
                [cljs.pprint :refer [pprint] :refer-macros [pp]]]

:repl-verbose

REPLの詳細なレポートを有効にします。デバッグに役立ちます。デフォルトはfalseです。

:repl-verbose true

これにより、評価する前にコンパイルされたJavaScriptが出力されます。

cljs.user=> (+ 1 2)
((1) + (2))
3

:warn-on-undeclared

REPLでの未宣言の変数と存在しない名前空間の使用に関連する警告を上書きします(具体的には:unprovided:undeclared-var:undeclared-ns、および:undeclared-ns-form)。デフォルトはtrueです。

:warn-on-undeclared false

:watch

ソースディレクトリを監視して、追加のJVMを起動せずに再コンパイルを行います。

:watch "src"

:watch-fn

:watch-fn (fn [] (println "built!"))

ビルドが成功した後に実行する引数のない関数。

ブラウザREPLオプション

これらのオプションは、ClojureScriptに付属のブラウザREPLにのみ適用されます。

:launch-browser

デフォルトでは、ブラウザREPLを起動すると、オペレーティングシステムで構成されたデフォルトのブラウザが起動し、それに接続します。この動作を無効にするには、このオプションをfalseに設定します。その場合、次のようなメッセージで接続を促されます。

Waiting for browser to connect to https://:9000 ...
:launch-browser false

:working-dir

コンパイルされたREPLクライアントJavaScriptが保存されるディレクトリ。デフォルトは、ClojureScriptバージョンのサフィックスが付いた".repl"です(例:".repl-1.9-946")。

:static-dir

静的コンテンツを検索するディレクトリのリスト。デフォルトは["." "out/"]です。

:src

ユーザー定義のcljsファイルを含むソースディレクトリ。リフレクションをサポートするために使用されます。デフォルトは"src/"です。

Node REPLオプション

:host

NodeサブプロセスがREPLトラフィックをリッスンするホスト。

:host "localhost"

:port

NodeサブプロセスがREPLトラフィックをリッスンするポート。

:port 49152

Graal.JS REPLオプション

js --help:languagesを実行すると、Graal.JS固有のオプションのリストが表示されます。"js."で始まる文字列キーを持つREPLオプションは、Graal.JSエンジンに渡されます。このようなエントリは、文字列値を持つ必要があります。

以下は、ECMAScript Internationalization APIを有効にして使用する例です。

$ clj -M -m cljs.main -re graaljs -ro '{"js.intl-402" "true"}' -r
cljs.user=> (def gas-price (js/Intl.NumberFormat. "en-US"
                             #js {:style "currency"
                                  :currency "USD"
                                  :minimumFractionDigits 3}))
#'cljs.user/gas-price
cljs.user=> (.format gas-price 5.259)
"$5.259"