我想预编译我的Handlebars模板,但我不确定它在开发模式下是如何工作的.
通常的做法是运行像Guard这样的后台流程来持续监控Handlebars模板文件的变化吗?
我正在使用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'],Handlebars) { // ... var data = {"some": "data","some_more": "data"}; var template = Handlebars.templates['my_template']; $('#target').append(template(data)); // ... });
> RequireJS模块不再拉入模板.
>不再使用Handlebars.compile().
因此,只要文件系统级修改发生在模板文件中,我通常会运行Guard以保持模板编译?
基本上我的问题是,开发人员打算这样做吗?
if (development) { compile templates } else { use precompiled templates }
我也使用Rails,所以也许有一些黑魔法像sass-rails.
解决方法
您是否看过Require.js Handlebars Plugin(
https://github.com/SlexAxton/require-handlebars-plugin)或者epeli的requirejs-hbs(
https://github.com/epeli/requirejs-hbs)?