2011年10月07日

coffeescript コンパイル方法別解

以前、rubyをインストールしているwindows環境で、coffeescriptをコンパイルする方法として、こんなのを紹介した。

ruby -r coffee-script -Ku -e "puts(CoffeeScript.compie(open('coffeefile'))" > outputfile

rubygemsのcoffee-scriptを利用した方法で、実行するには他のjavascript実行エンジン(node.exeなど)が必要だった。
今回紹介するのは、rubygemsもnode.exeも必要ない。その代わりに必要になるのは、coffee-script.jsだ 


 

実はwindowsにデフォルトで存在するjavascriptエンジン

coffee-script.js自体はcoffeescript公式のページから手に入る。こことか

http://jashkenas.github.com/coffee-script/extras/coffee-script.js

でも、これを実行するにはブラウザ外でjavascriptが実行できるjavascript実行エンジンが必要だ。
この前ダウンロードしたnode.exeとか。
でも、たとえばモバイル用パソコンでも開発をしたくて、色々環境を整えるのが面倒、
できればUSBメモリ一刺しで環境を整えたい、見たいな要望がある人がいるとする。というか俺だ。

そういう方向けにはWindowsに標準で導入されているjavascriptエンジンを使えばよい
そんなのあるの?と思われるかもしれないが実はある。WSHだ。

WSHは、コマンドラインで以下のように呼び出すことで.jsファイルを実行することができる。

cscript //nologo 実行するjsファイル

これを応用する。
こんな感じのjsファイルを作成し、coffee-script.jsと同じフォルダにおいておいて・・・

// compiler.js
var fs = WScript.CreateObject("Scripting.FileSystemObject"); 
 
//coffeescriptを読み込んで評価
var path = WScript.ScriptFullName.replace(WScript.ScriptName,"");
eval(fs.OpenTextFile(path + "coffee-script.js", 1).ReadAll()); 
 
//
// ここからメインです。
//
var args = WScript.Arguments;
if (args.length == 0) {
  WScript.Echo("error: please Drag And Drop *.coffee file!");
} else {
  for (var i = 0; i < args.length; i++) {
    var src      = fs.OpenTextFile(args.Item(i), 1).ReadAll();
    var compiled = CoffeeScript.compile(src);

WScript.Echo(compiled);
  }
}

コマンドラインから

cscript //nologo compiler.js coffeeファイル > 出力先


とすることでコンパイル可能。これでスタバとかでパソコンでもcoffee、口からもcoffeeだぜ!

参考 : http://kennyj-jp.blogspot.com/2011_01_01_archive.html ありがとうございますわーい(嬉しい顔)
タグ:CoffeeScript
posted by LoyalTouch at 21:01| Comment(0) | TrackBack(0) | クライアントサイド | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/229407060

この記事へのトラックバック