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 會啟動作業系統設定的預設瀏覽器,以連回 REPL。您可以將此選項設定為 false 來停用此行為,這樣做時,系統會提示您使用如下訊息進行連線

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

:working-dir

將儲存已編譯的 REPL 用戶端 JavaScript 的目錄。預設為 ".repl",並帶有 ClojureScript 版本後綴,例如 ".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 國際化 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"