CoffeeScriptのコンパイル方法とか資料を調べてみた
大ざっぱにまとめ
- browser で直接コンパイル
- coffee-script.js を利用して手動でコンパイル
- 自動で watch してコンパイルして serve してくれる便利フレームワーク
くらいの方法があるみたい。
browser で直接コンパイルして実行
とりあえず動かす分にはこれでも大丈夫。本家ドキュメントにもしっかりこの使い方は書かれている。
- CoffeeScriptはインストールしなくてもブラウザ上で実行できるよという話 - ariyasacca(2011-02-21)
- "text/coffeescript" Script Tags - CoffeeScript
コマンドラインでコンパイル
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 が比較的人気?
具体的にはこの辺。
- duncansmart/coffeescript-windows - GitHub
- alisey/CoffeeScript-Compiler-for-Windows at master - GitHub
- maly / CoffeeScript / Win / source — Bitbucket
- utilityTools/CoffeeScript at master from azu/NILScript - GitHub
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 でテストを書く
とかで利用できる。
素の jasmine は rspec に比べるとだいぶしんどい感じなので、CoffeeScript で書けるとかなり嬉しい気がする。そのままだと rake に統合できなかったりブラウザでテストしたい場合とか考えると Rails プロジェクトなんかだと逆に面倒かもしれないけど、昨今の JavaScript の応用範囲の広さはハンパないので、いろんなシーンで検討の余地はありそう。
資料
文法など
- 今日から始めるCoffeeScript | tech.kayac.com - KAYAC engineers\' blog
- CoffeeScript基礎文法最速マスター | 株式会社インフィニットループ技術ブログ
その他の環境など
本家の情報がだいぶ充実してる
CoffeeScript の開発には Ruby が使われてるわけです ↩