Node.js 把手缩小HTML

Node.js 把手缩小HTML,node.js,express,handlebars.js,Node.js,Express,Handlebars.js,在Node.js Express应用程序中,是否有办法在将所有把手模板发送到渲染器之前缩小它们 我曾考虑创建一个Express中间件,在HTML响应体上进行缩小,但我很快意识到这是非常无效的,因为缩小会发生在每个HTTP请求上 必须有一种缩小.hbs模板并将其缓存到服务器端的方法?这就成功了: 唯一的小问题是,您必须在每个模板中手动包含帮助器: 从模块的Github页面: {{#minify removeComments="true"}} {{> header }} {{/minif

在Node.js Express应用程序中,是否有办法在将所有把手模板发送到渲染器之前缩小它们

我曾考虑创建一个Express中间件,在HTML响应体上进行缩小,但我很快意识到这是非常无效的,因为缩小会发生在每个HTTP请求上

必须有一种缩小.hbs模板并将其缓存到服务器端的方法?

这就成功了:

唯一的小问题是,您必须在每个模板中手动包含帮助器:

从模块的Github页面:

{{#minify removeComments="true"}}
  {{> header }}
{{/minify}}

{{#minify removeEmptyElements="true"}}
  {{> body }}
{{/minify}}

{{#minify removeComments="true"}}
  {{> footer }}
{{/minify}} 

您可以动态缩小,但出于性能原因,我建议您事先使用外部缩小器缩小文件,因此您只需执行一次。否则,每次调用该文件时都必须缩小html

因此,另一种解决方案是从命令行使用

--忽略自定义片段“/{{[{]?(.*?[}]?}/”

此正则表达式将忽略
{
}
之间的所有内容,HTML将缩小其余部分。

仅添加下一个标志--“继续分析错误”,以下命令对我有效:

html-minifier --input-dir [SOURCE_DIR] --output-dir [TARGET_DIR] --file-ext hbs --collapse-whitespace --continue-on-parse-error --remove-comments --minify-css true --minify-js true

这没用。Minifier应该是Express流程的一部分,而不是外部流程的一部分commands@HoangLam您可以动态缩小,但出于性能原因,我建议您事先使用外部缩小器缩小文件,因此您只需执行一次。否则,您必须在每次调用文件时缩小html。这会缩小模板的输出,而不是模板本身。