Browserify/Stringify 剥离挖空评论绑定
Browserify/Stringify strips Knockout Comment Binding
我将 Knockout 和 Browserify 与 Stringify 结合使用。我在注释中有一些 Knockout 绑定,以促进组件中迭代 [1] 内的自定义 header。 Stringify 去掉了 Knockout 需要的注释;是否有忽略文件中的评论或忽略特定类型评论的解决方案?
[1] - http://knockoutjs.com/documentation/foreach-binding.html (注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 -->
我将 Knockout 和 Browserify 与 Stringify 结合使用。我在注释中有一些 Knockout 绑定,以促进组件中迭代 [1] 内的自定义 header。 Stringify 去掉了 Knockout 需要的注释;是否有忽略文件中的评论或忽略特定类型评论的解决方案?
[1] - http://knockoutjs.com/documentation/foreach-binding.html (注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 -->