如何预编译 Handlebars 模板
How do you Precompile Handlebars Templates
使用 npm 编译把手模板的正确方法是什么。
网站上的documentation含糊不清。
首先,您需要通过 运行ning 这条命令用节点安装车把。如果您没有节点,请先安装它。真的又快又无痛。
npm -g install handlebars
然后将所有车把模板与扩展车把一起放入 js/templates 中。例如,名为 booksList.handlebars 的文件就是 booksList 模板。在这些文件中,如果您将模板包含在 html 页面中,则不需要通常需要的脚本标签。所以不是这个:
<script id="booksList" type="text/x-handlebars-template">
<ul>
{{#each books}}
<li>{{title}}</li>
{{/each}}
</ul>
</script>
它看起来像这样:
<ul>
{{#each books}}
<li>{{title}}</li>
{{/each}}
</ul>
然后使用该文件夹中的所有模板,打开命令提示符,导航到 js 文件夹正上方的文件夹。您不想导航到 js 文件夹的原因是因为您要 运行 handlebars 命令,如果您在 js 文件夹中,它会认为您的意思是 运行 javascript 文件。然后 运行 handlebars 命令将获取所有这些模板并将它们组合到一个名为 tamplates.js 的文件中。 -m 选项意味着它将缩小文件。
handlebars -m js/templates/> js/templates/templates.js
然后在您的 html 中,您只需包含一个文件和车把:
<script src="js/handlebars.js"></script>
<script src="js/templates/templates.js"></script>
当您需要在 javascript 中使用模板时,它的工作方式与以前相同,只是不必像这样编译模板:
var source = $("#booksList").html();
var template = Handlebars.compile(source);
您现在可以像这样使用它:
var template = Handlebars.templates['booksList'];
而且您不必包含整个 javascript 库。您只需要 运行time 版本。
<script src="/libs/handlebars.runtime.js"></script>
In addition to reducing the download size, eliminating client-side
compilation will significantly speed up boot time, as compilation is
the most expensive part of Handlebars.
Because you are precompiling templates, you can also specify a list of
the known helpers to the compiler
The Handlebars compiler will optimize accesses to those helpers for
performance.
handlebars <input> -f <output> -k each -k if -k unless
使用 npm 编译把手模板的正确方法是什么。
网站上的documentation含糊不清。
首先,您需要通过 运行ning 这条命令用节点安装车把。如果您没有节点,请先安装它。真的又快又无痛。
npm -g install handlebars
然后将所有车把模板与扩展车把一起放入 js/templates 中。例如,名为 booksList.handlebars 的文件就是 booksList 模板。在这些文件中,如果您将模板包含在 html 页面中,则不需要通常需要的脚本标签。所以不是这个:
<script id="booksList" type="text/x-handlebars-template">
<ul>
{{#each books}}
<li>{{title}}</li>
{{/each}}
</ul>
</script>
它看起来像这样:
<ul>
{{#each books}}
<li>{{title}}</li>
{{/each}}
</ul>
然后使用该文件夹中的所有模板,打开命令提示符,导航到 js 文件夹正上方的文件夹。您不想导航到 js 文件夹的原因是因为您要 运行 handlebars 命令,如果您在 js 文件夹中,它会认为您的意思是 运行 javascript 文件。然后 运行 handlebars 命令将获取所有这些模板并将它们组合到一个名为 tamplates.js 的文件中。 -m 选项意味着它将缩小文件。
handlebars -m js/templates/> js/templates/templates.js
然后在您的 html 中,您只需包含一个文件和车把:
<script src="js/handlebars.js"></script>
<script src="js/templates/templates.js"></script>
当您需要在 javascript 中使用模板时,它的工作方式与以前相同,只是不必像这样编译模板:
var source = $("#booksList").html();
var template = Handlebars.compile(source);
您现在可以像这样使用它:
var template = Handlebars.templates['booksList'];
而且您不必包含整个 javascript 库。您只需要 运行time 版本。
<script src="/libs/handlebars.runtime.js"></script>
In addition to reducing the download size, eliminating client-side compilation will significantly speed up boot time, as compilation is the most expensive part of Handlebars.
Because you are precompiling templates, you can also specify a list of the known helpers to the compiler The Handlebars compiler will optimize accesses to those helpers for performance.
handlebars <input> -f <output> -k each -k if -k unless