我正在尝试使用grunt-contrib-html来缩小我的HTML。唯一的问题是我使用containerless control flow syntax敲击,这只是html评论,但它们对于淘汰非常重要:
<ul>
<li>This item always appears</li>
<!-- ko if: someExpressionGoesHere -->
<li>I want to make this item present/absent dynamically</li>
<!-- /ko -->
</ul>
<!-- ko foreach: myItems -->
<li>Item <span data-bind="text: $data"></span></li>
<!-- /ko -->
所以当我使用minifier时有以下选项:
options: {
removeComments: true,
collapseWhitespace: true
}
应用程序在缩小后不起作用(不出意外,它会删除<!-- ko comments
)。删除removeComments
可以解决问题,但是我的html有很多评论,其中只有少数是特定的淘汰赛。此外,所有的淘汰评论都很容易辨认:他们在开始时<!-- ko
,最后<!-- /ko -->
。
寻找潜在的html minifier options - 没有像&#34;处理正确的淘汰评论&#34;。
那么有没有办法解决我的问题:缩小html删除评论,但留下特定的评论?
答案 0 :(得分:7)
所以...现在通过ignoreCustomComments
选项实现。
这是我们测试套件的片段:
var input = '<!-- ko if: someExpressionGoesHere --><li>test</li><!-- /ko -->';
equal(minify(input, {
removeComments: true,
// ignore knockout comments
ignoreCustomComments: [
/^\s+ko/,
/\/ko\s+$/
]
}), input);