トップ «前の日記(2011-08-10) 最新 次の日記(2011-08-14)» 編集

2011-08-13 [長年日記]

_ CoffeeScriptのコンパイル方法とか資料を調べてみた

大ざっぱにまとめ

  1. browser で直接コンパイル
  2. coffee-script.js を利用して手動でコンパイル
  3. 自動で watch してコンパイルして serve してくれる便利フレームワーク

くらいの方法があるみたい。

browser で直接コンパイルして実行

とりあえず動かす分にはこれでも大丈夫。本家ドキュメントにもしっかりこの使い方は書かれている。

コマンドラインでコンパイル

npm の coffee コマンドでコンパイル

browser で直接コンパイルして実行するのは遅いので事前に .js に変換したい。そういう場合は npm で

npm install -g coffee-script

でインストールできる

coffee

コマンドを使うのがいちばんの王道。

Windowsの場合

2011-08-13 現在 Windows では npm は動かない(node.exeはある)ので、他の方法を考える必要がある。

CoffeeScript on Windows? - Stack Overflow

だいたい以下の方法に落ち着くみたい。

  • WSHを使う方法
  • 海外では jsdb.exe が比較的人気?
  • 日本では NILScript が比較的人気?

具体的にはこの辺。

CoffeeScript-Compiler-for-Windows は本家からも参照されている。

ruby からエンジンをいい具合に選んでコンパイル
  • ruby をすでに使っていて
  • gem が使えて
  • なんらかの JavaScript エンジン(含む node.exe)は入っている
  • しかし npm は使えない

この場合は、わざわざ別途 JavaScript エンジン付きのコンパイラをインストールする必要はない。以下の gem を利用すればそのとき使える適当な JavaScript エンジンを利用してコンパイルしてくれる。

josh/ruby-coffee-script - GitHub

こいつは本家の Rakefile にある coffee-script-source gem を利用している*1ので、上に挙げたような独自コンパイラ実行環境を使うよりは、古いバージョンを使い続ける可能性が少し低いので安心かもしれない。

使い方は以下のような感じ。

ruby -r coffee-script -e \
  'puts CoffeeScript.compile( open("/path/to/script.coffee"), opts )' \
  > /path/to/dest.js

Windows の cmd.exe だとこう。

ruby -r coffee-script -e \
  "puts CoffeeScript.compile( open(\"/path/to/script.coffee\"), opts )" \
  > /path/to/dest.js

node.exe が入っていればちゃんと Windows でも node.js を利用してコンパイルしてくれる。

自動でコンパイルしてほしい

毎回手でやるのは面倒くさいしばからしい。

npmが使えるなら
coffee --watch

で ok

Rubyなどのいい具合にしてくれるフレームワークを利用する

あくまで Web 上での利用でとにかく楽をしたい場合は上のコードを透過的に実行してくれる

  • Rails 3.1+
  • Middleman

なんかがオススメ。

どっちも Windows には厳しいけど。

CoffeeScript でテストを書く

mhevery/jasmine-node - GitHub

とかで利用できる。

素の jasmine は rspec に比べるとだいぶしんどい感じなので、CoffeeScript で書けるとかなり嬉しい気がする。そのままだと rake に統合できなかったりブラウザでテストしたい場合とか考えると Rails プロジェクトなんかだと逆に面倒かもしれないけど、昨今の JavaScript の応用範囲の広さはハンパないので、いろんなシーンで検討の余地はありそう。

資料

文法など
その他の環境など

本家の情報がだいぶ充実してる

*1 CoffeeScript の開発には Ruby が使われてるわけです