Sails.js で CoffeeScript の自動コンパイルを実行する

Sails.js のContorollファイル(HomeController.coffee など)をCoffeeScriptで記述した場合、sails lift での実行であれば.coffeeファイルは自動コンパイルされますが、node(forever) app.js で起動するとコンパイル出来ない(起動しない) のでその解決法を紹介します。

npm i -S coffee-script

app.jsの最初の個所で coffee-scriptをrequireする。

// Start sails and pass it command line arguments
require('coffee-script'); //<-追加

require('sails').lift(require('optimist').argv);

(2014/4/3追記)
coffee-script@1.7.x ではrequire の記述方法が変更されたようです。

// Start sails and pass it command line arguments
require('coffee-script/register');  //<-追加

require('sails').lift(require('optimist').argv);

https://github.com/jashkenas/coffee-script/pull/3279
(2014/4/3追記終わり)

(2014/2/21追記) ``coffee-script@1.7.1`` だと コンパイル出来ないようなので Sails.js に同梱している coffee-script に依存するようにしました。 (上記手順は ``coffee-script@1.6.3`` で動作することを確認)
// Start sails and pass it command line arguments
require('./node_modules/sails/node_modules/coffee-script');  //<-追加

require('sails').lift(require('optimist').argv);

(2014/2/21追記終わり)

編集後、node app.js で起動すると HomeController.coffee などがちゃんと認識されるようになります。

参考

http://stackoverflow.com/questions/20196248/sailsjs-and-forever-doesnt-work-with-coffeescript