インターネットからケーキのスニペットをいくつかコピーして、プロジェクトのビルドを自動化しようとしました。
ビルド タスクには 2 つのバージョンがあります。1つはexecを使用します:
{exec} = require 'child_process'
task 'build', 'Build project from src/*.coffee to lib/*.js', ->
exec 'coffee --compile -m --output lib/client scripts/client/', (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
exec 'coffee --compile -m --output lib/server scripts/server/', (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
そして1つはスポーンを使用します:
task "build2", "build and watch with spawn",->
client = spawn "coffee", ["--compile", "--map", "--output", "lib/client", "scripts/client"]
client.stdout.on "data", (data)->console.log data.toString().trim()
server = spawn "coffee", ["--compile", "--map", "--output", "lib/server", "scripts/client"]
server.stdout.on "data", (data)->console.log data.toString().trim()
プロジェクトを手動でコンパイルし、サーバーを起動し、それが機能することを確認してから、2 つのタスクを実行しました。どちらもエラー メッセージなしで返されました。
次に、クライアント側の coffeescript に明らかに間違った行を 1 つ追加し、"123/gff&&728709§""" のようにして、両方のタスクを再度実行しました。
- exec を使用したタスクがクラッシュし、「throw err, Command failed」というエラー メッセージが表示される
- スポーンを伴うタスクは黙って戻ってきました。クラッシュしませんが、コードにエラーを記録しません
coffeescript を構築するために Cake を使用する正しい方法は何ですか? コードを修正するにはどうすればよいですか?