[英]How to remove comments with BundleTransformer YuiJsMinifier
我正在使用BundleTransformer来缩小css
和js
资源
<yui>
<css compressionType="Standard" removeComments="true" lineBreakPosition="-1" />
<js compressionType="Standard" obfuscateJavascript="true" preserveAllSemicolons="false" disableOptimizations="false" ignoreEval="false" severity="0" lineBreakPosition="-1" encoding="UTF8" threadCulture="en-us" />
</yui>
正如您在css
中看到的那样,可以指定removeComments="true"
但在js
中没有这样的选项。
我认为 YUI js 压缩器默认会删除注释。 是的,它是一种删除,但它仍然是这样的评论:
/* NUGET: BEGIN LICENSE TEXT
*
*Bla bla bla
*
* NUGET: END LICENSE TEXT */
/*!
* Bla
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
*/
看起来没有办法强制 YIU js minifier 删除评论。
https://github.com/yui/yuicompressor :
以 /*! 开头的 C 风格注释被保留下来。 这对于包含版权/许可信息的注释很有用
我可以通过使用BundleTransformer来完全删除捆绑的缩小输出文件中的所有类型的注释吗? 谷歌页面速度强烈建议我这样做。
YUI 压缩器不支持删除重要注释。
我建议你安装BundleTransformer.MicrosoftAjax包。 此后将MicrosoftAjaxCssMinifier
和MicrosoftAjaxJsMinifier
注册为默认缩小器,并将以下配置设置添加到 Web.config 文件中:
<configuration>
…
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
…
<microsoftAjax>
<css commentMode="None" />
<js preserveImportantComments="false" />
</microsoftAjax>
…
</bundleTransformer>
…
</configuration>
它是 yuicompressor 版本 2.4.8,但问题仍然存在。
如果你在 linux 上,你可以使用sed命令来替换/*!
在通过 yuicompressor 运行文件之前,在文件中加上/*
。
我刚刚测试过的真实工作示例:
sed -i -e "s/\/\*\!/\/\*/g" script.js
\\/
- 转义符号/
\\*
- 转义符号*
\\!
- 逃脱的符号!
g
- 全局(正则表达式标志)
s
- 替代(正则表达式标志)
-i
- "inplace" 命令标志,表示即时替换(在同一文件上应用更改)
下一步:像往常一样运行 yuicompressor,瞧!
java -jar /path/to/yuicompressor-2.4.8.jar script.js -o script.min.js --charset utf-8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.