Handlebars テンプレートをプリコンパイルしたいのですが、これが開発モードでどのように機能するかわかりません。
ハンドルバー テンプレート ファイルへの変更を常に監視するためにGuardのようなバックグラウンド プロセスを実行するのは一般的な方法ですか?
テンプレートを取り込むために RequireJS を使用しています。例えば:
define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {
// ...
var data = {"some": "data", "some_more": "data"};
var templateFn = Handlebars.compile(myTemplate);
$('#target').append(templateFn(data));
// ...
});
したがって、テンプレートがプリコンパイルされたら、次のようにすることを理解しています。
define(['jquery', 'handlebars'], function($, Handlebars) {
// ...
var data = {"some": "data", "some_more": "data"};
var template = Handlebars.templates['my_template'];
$('#target').append(template(data));
// ...
});
2 番目のコード スニペットの について、次の点に注意してください。
- RequireJS モジュールはテンプレートを取り込まなくなりました。
- Handlebars.compile() は使用されなくなりました。
通常、ファイル システム レベルの変更がテンプレート ファイルに発生するたびに、テンプレートのコンパイルを維持するために Guard を実行しますか?
基本的に私の質問は、開発者がこれを行う意図はありますか?
if (development) {
compile templates
}
else {
use precompiled templates
}
私も Rails を使っているので、sass-rails のような黒魔術があるのかもしれません。