Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用grunt预编译服务器端html模板_Javascript_Html_Node.js_Templates_Gruntjs - Fatal编程技术网

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

Javascript 使用grunt预编译服务器端html模板,javascript,html,node.js,templates,gruntjs,Javascript,Html,Node.js,Templates,Gruntjs,使用Grunt,我想知道是否有一些现有的构建过程来预编译服务器端模板。 实际上,对于常用的模板引擎,您经常使用诸如“include”、“extend layout.html”… 这意味着您可以对模板进行预编译,完成所有可能的工作 “静态”求解。例如,使用和“包括”功能: a、 ect 你好,我是 b、 ect 我被包括在a.ect中 由于没有条件动态语句来决定是否必须包含b.ect块,因此可以静态编译a.ect,将b.ect包含到./dist/a.ect: 你好,我是a.ect中的一员

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

  • a、 ect
你好,我是

  • b、 ect
我被包括在a.ect中

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

你好,我是a.ect中的一员

如您所见,./dist/a.ect仍然是一个模板,需要提供@name变量stills,因此在本例中,此部分保持不变。但是,包含是静态的,因此可以立即执行,避免在运行时执行无用的包含(即使使用缓存)

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

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

你知道即使没有grunt,这种预编译工具是否已经存在于模板引擎中吗


PS:这可能是一个不好的方法,所以欢迎您提供任何建议。

可能不是您想要的, 但npm提供了一个模板预编译器,它在一个缩小的js文件中呈现模板:


是的,我已经看过了,但它看起来更像是一个客户端工具。无论如何,我不确定这个预编译器是否与Express兼容,它会生成JS。也许是这个?不确定这个软件包是否包含即时信息,但可能有人觉得它很有趣。