我正在使用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是压缩机removes comments by default。是的,有点删除,但它仍然留下这样的评论:
/* 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完全删除捆绑的缩小输出文件中的所有类型的注释,我能做些什么吗? Google page speed强烈建议我这样做。
答案 0 :(得分:1)
YUI压缩器不支持删除重要评论。
我建议您安装BundleTransformer.MicrosoftAjax包。然后将MicrosoftAjaxCssMinifier
和MicrosoftAjaxJsMinifier
注册为默认minifiers,并将以下配置设置添加到Web.config文件中:
<configuration>
…
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
…
<microsoftAjax>
<css commentMode="None" />
<js preserveImportantComments="false" />
</microsoftAjax>
…
</bundleTransformer>
…
</configuration>
答案 1 :(得分:0)
这是yuicompressor版本2.4.8,但问题仍然存在。
如果您使用的是Linux,则可以先通过 sed 命令将文件中的/*!
替换为/*
,然后再通过yuicompressor运行它。
我刚刚测试过的现实工作示例:
sed -i -e "s/\/\*\!/\/\*/g" script.js
\/
-转义符号/
\*
-转义符号*
\!
-转义符号!
g
-全局(正则表达式标志)
s
-替代(正则表达式标志)
-i
-“在位”命令标志,表示即时替换(将更改应用于同一文件)
下一步:像往常一样运行yuicompressor,瞧瞧!
java -jar /path/to/yuicompressor-2.4.8.jar script.js -o script.min.js --charset utf-8