使用grunt预编译服务器端html模板

时间:2013-12-11 20:54:35

标签: javascript html node.js templates gruntjs

使用Grunt我想知道是否有一些现有的构建过程来预编译服务器端模板。 实际上,对于通常的模板引擎,您经常使用“include”,“extend layout.html”,...等功能 这意味着您可以预先编译模板,完成所有可能的操作 “静态”解决。例如,使用ect和“包含”功能:

  • a.ect

<div>Hello I'm <%= @name %></div><% include 'b.ect' %>

  • b.ect

<div>I'm included in a.ect</div>

由于没有条件动态语句来决定是否必须包含 b.ect 块,因此可以静态编译 a.ect ,包括 b。 ect 进入 ./ dist / a.ect

<div>Hello I'm <%= @name %></div><div>I'm included in a.ect</div>

如您所见, ./ dist / a.ect 仍然是模板,并且需要提供@name变量,因此在这种情况下,此部分保持不变。但是,包含是静态的,因此可以立即完成,避免无用的包含在运行时(即使使用缓存)

使用这种方法,我们甚至可以考虑在此构建过程中缩小模板等等。对于缩小任务,我知道像htmlmin这样的工具,但这是针对有效的html。

我还发现了一些繁琐的任务(grunt-ectgrunt-contrib-jade等),它们通过提供上下文将您的模板编译成html。但是,它似乎希望获得模板的所有动态部分,即所有变量的值。

任何想法是否已经存在模板引擎的这种预编译工具,即使没有grunt?

PS:这可能是一个糟糕的方法,所以欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

可能不完全是你想要的, 但是有一个预编译器可以通过npm获得handlebars模板,它可以在一个缩小的js文件中呈现模板:

https://npmjs.org/package/handlebars-precompiler