我想知道是否有一些现有的构建过程来支持服务器端模板。
实际上,对于通常的模板引擎,您经常使用诸如“include”、“extend layout.html”、。。。
这意味着您可以通过执行
“静态”求解。例如,使用ect和“include”功能:
等电位<div>Hello I'm <%= @name %></div><% include '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任务(grunt-ect,grunt-contrib-jade,等等),它们通过提供上下文将模板编译成html。不过,它似乎希望获得模板的所有动态部分,即所有变量的值。
有没有想过,即使没有咕噜声,这种预编译工具也已经存在于模板引擎上了吗?
附言:这可能是一个糟糕的方法,所以任何建议都是受欢迎的。
最佳答案
很可能不是你要找的东西,
但是有一个通过npm提供的handlebars模板的预编译程序,它在一个缩小的js文件中呈现模板:
https://npmjs.org/package/handlebars-precompiler