我使用Knockout和Browserify使用Stringify。我在注释中有一些Knockout绑定,以便在组件中的迭代[1]内部实现自定义标头。 Stringify删除了Knockout所需的注释;是否存在忽略文件中的注释或忽略特定类型的注释的解决方案?
[1] - http://knockoutjs.com/documentation/foreach-binding.html(注4)
答案 0 :(得分:4)
如果您使用的是Browserify,则应使用Gulp。在Stringify转换选项中,应指定自定义minifyOptions对象。有一个名为ignoreCustomComments
的选项,您可以在其中指定要从删除中排除的正则表达式数组。
browserify({
entries: 'index.js', extensions: ['.js'], watch: config.watching
})
.transform(babelify, {presets: ['es2015']})
.transform(stringify, {
appliesTo: {includeExtensions: ['.html']},
minify: true,
minifyOptions: {
ignoreCustomComments: [/^(\s*ko)/, /^(\s*\/ko)/]
}
})
[/^(\s*ko)/, /^(\s*\/ko)/]
将保留所有带有空格的注释,然后是'ko'或'/ ko'注释绑定。但是,通过将minifyOptions设置为新对象,所有默认值都将被覆盖为undefined
;因此,您需要立即指定。这些可以找到here
用法:
<!-- Will be removed -->
<!-- ko if: true -->
<h4>This will be shown</h4>
<!-- /ko -->
<!-- ko if: false -->
<h4>This will NOT be shown</h4>
<!-- /ko -->