ClojureScript自身の開発のはじめかた

ClojureScriptの不具合らしき挙動に遭遇したのでパッチを作ろうとするも、 普段cljsbuildやらFigwheelなんかのツールを介してしかClojureScriptに触れていないので、素のClojureScriptをどう動かせばいいのか すら分からない状態。

とりあえず必要最低限、素のClojureScriptでの動作確認とテストをするところまではやったので、備忘録として残しておく。

ブートストラップ

以下のスクリプトを実行するだけ:

$ ./script/bootstrap

実際には、依存ライブラリなんかをダウンロードしてきてlib/以下に置いている。依存ライブラリ、特にClojureのバージョンが違ったりすると REPLの起動でコケたりするので忘れずにやる。

lib/以下も含め、一旦綺麗にしたい場合は、あらかじめ以下も実行しておく:

$ ./script/clean

REPL起動

一旦ブートストラップできたら以下でREPLが起動できる:

$ ./script/repljs

このスクリプトはJSランタイムとしてRhinoを使ってREPLを起動する。

Node.jsやNashornを使ってREPLを起動したい場合には、それぞれ script/noderepljsscript/nashornrepljsを使う。

script/replというスクリプトもあるんだけど、こっちは実際にはClojureのREPLが立ち上がってそこからClojureScriptの REPL環境やらを自前でロードして使う感じなので、サクッとREPLを起動したいだけの用途には向かない。

テスト実行

ClojureScriptコンパイラ等、Clojureで書かれてたコードをテストする場合には以下を実行する:

$ lein test

ClojureScriptで書かれたコード(コアライブラリやセルフホスティングコンパイラ)等に関するテストは上のコマンドには含まれない。

コアライブラリのテストをしたい場合には以下を実行する:

$ ./script/test

ただし、このスクリプトはテストで使うJSランタイムが見つからないとテストコードのビルドだけをして終了してしまうので注意が必要。 JSランタイムは環境変数等で指定してやる必要がある。 詳しくはこちらを参照。

updatedupdated2017-06-242017-06-24