Cakefileとは
Cakefileは、CoffeeScriptをビルドする際にビルドの指定などをするためのファイルです。
詳しくはこちらをご覧下さい。
Cakefileで実現したいこと
今回は以下のような構成を想定しています。
js – | script.js |
coffee – | ***.coffee |
***.coffee |
coffeeフォルダの複数のファイルをビルドし、同階層のjsフォルダにCoffeeScriptをまとめたscript.jsを作成する。
Cakefileの記述方法
Cakefileは『Cakefile』と拡張子もなく、CoffeeScriptのある、coffee/フォルダに作成します。
以下のように記述します。
sys = require 'sys' fs = require 'fs' exec = require('child_process').exec util = require 'util' # 設定 COMMAND = 'coffee' OPTIONS = '-cbj' SRCDIR = '.' # *.coffeeファイルがあるディレクトリへのパス OUTDIR = '../js' # *.jsファイルの保存先 TARGET_FILENAME = 'script.js' # coffeeフォルダ内のCoffeeScriptを列挙 targetList = [] for f in fs.readdirSync SRCDIR targetList.push RegExp.$1 if f.match /^(\w+)\.coffee$/ task 'build', 'compile target files', -> targetList = targetList.join(' ') # コンパイルオプション option = "#{OPTIONS} #{OUTDIR}/#{TARGET_FILENAME} #{targetList}" # コンパイル実行 util.log('コンパイルします') exec "coffee #{option}", (error, stdout, stderr) -> util.log(error) if error util.log(stdout) if stdout util.log(stderr) if stderr if error util.log('失敗しました') else util.log('成功しました')
このように記入し、ビルドすればcoffeeファルダ内の全てのCoffeeScriptをまとめて、jsフォルダ内にscript.jsとして作成できます。
他にもアレンジが効くので、色々と自分に合わせて使用してみてください。