Handlebars.js 预编译

2014-04-27 · 6 min read

通过预编译,可以提前编译你的模板,节省客户端编译的时间,减少需要引入的 Handlebars 库的大小。

开始#

第一步,需要安装 node 和 npm,在 OSX 上:

$ brew install node
$ curl https://npmjs.org/install.sh | sh

上一步的前提是你安装了 Homebrew,如果没有的话,先安装:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

之后,安装 Handlebars 的 npm 包

$ npm install handlebars -g

使用-g 标签安装到全局,就可以在任何项目中使用了。

现在就可以使用预编译了

$ handlebars <input> -f <output>

编译器会把模板输入 Handlebars.templates,如果你输入的文件是 person.handlebars,编译器会添加到 Handlebars.templates.person,然后可以直接调用:

Handlebars.templates.person(context, options)

如果你使用预编译模板,你只需要引入运行时库

<script src="libs/handlebars.runtime.js"></script>

仅仅引入运行时库,除了减少下载的大小,另外一点就是,客户端编译常常是性能的瓶颈。 最佳实践
可以使用一些优化设置来预编译模板,首先你可以指定要编译的helpers列表 handlebars
<input /> -f
<output>
  -k each -k if -k unless 编译器会最优化的预编译这些helpers handlebars.js中文文档
</output>