CoffeeScript と Sass のコンパイルを Grunt で行うようにしたら、 ついでに Hogan.js のテンプレートもコンパイルしたくなるのは仕方ないよね。 人として。
Grunt のタスクをインストール
Grunt の contrib タスクには Hogan.js 用のタスクがあるので、npm でインストール。
npm install grunt-contrib-hogan
EJS から Hogan.js に移行した理由の1つが、このタスクの存在だったり。
Gruntfile 修正
module.exports = function(grunt) { grunt.initConfig({ hogan: { publish: { options: { namespace: "HoganTemplates", defaultName: function(filename) { return filename.split(".")[0]; } }, files: { "public/assets/template.js": [ "app/assets/javascripts/backbone/templates/**/*.mustache" ] } } } }); grunt.loadNpmTasks("grunt-contrib-hogan"); };
namespace は、JavaScript/CoffeeScript からテンプレートにアクセスするときに使うオブジェクトの名前。HoganTemplates にしてみた。
defaultName は、HoganTemplates からテンプレートを取得するとき指定するキーの命名規則。
いざコンパイル
grunt hogan
を実行すると Hogan.js のテンプレートをコンパイルして、 public/assets/templates.js を出力できた。
Rails のアセットパイプラインから Grunt に移行する準備が着々と進んでいるな。