[JavaScript] ファイルに変更があったらコンパイルしてファイルを連結して書き出すCoffeeScriptのCakefile

2011/12/18

こんにちは。きんくまです。

CoffeeScriptを勉強中です。
Cakefileというのを見つけました。そんで調べてみました。
バッチファイルのようなものだと思いました。

こんな感じに使いたくなりました。

1. src/*.coffeeファイルたちを監視
2. もし変更(保存)があったら、コンパイルする
3. コンパイルしたものを連結して lib/main.js に書き出す

下のコードを書きました。
これであってるのかどうかわかりませんが、動きます。

Cakefile

{spawn} = require 'child_process'

task 'watch', 'watch src/ and concatenate them to lib/main.js', (callback) -> 
  watch = spawn 'coffee', ['-w', 'src/']
  watch.stderr.on 'data', (data) ->
    process.stderr.write data.toString()
  watch.stdout.on 'data', (data) ->
    console.log 'file changed'
    build = spawn 'coffee', ['-j', 'lib/main.js', '-cl', 'src/']
    build.stderr.on 'data', (data) ->
      process.stderr.write data.toString()
    build.on 'exit', (code) ->
      if code is 0
        console.log 'build complete'

使い方
ターミナル上でこう打ちます

cake watch

これらのページを参照しました。ありがとうございますです。

>> Cakefile(zsh) – podhmoの日記
>> CakeFileの使い方 -CoffeeScript- – プログラムdeタマゴ
>> node.js – coffee script cakefile task not finishing – Stack Overflow
>> [HowTo] Compiling and Setting Up Build Tools – GitHub
>> The Little Book on CoffeeScript – Compiling


自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る