5

我正在使用BundleTransformer来缩小cssjs资源

        <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完全删除捆绑的缩小输出文件中的所有类型的注释,我能做些什么吗?谷歌页面速度强烈建议我这样做。

4

2 回答 2

1

YUI 压缩器不支持删除重要评论。

我建议你安装BundleTransformer.MicrosoftAjax包。此后注册MicrosoftAjaxCssMinifierMicrosoftAjaxJsMinifier作为默认缩小器,并将以下配置设置添加到 Web.config 文件:

<configuration>
    …
    <bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
        …
        <microsoftAjax>
            <css commentMode="None" />
            <js preserveImportantComments="false" />
        </microsoftAjax>
        …
    </bundleTransformer>
    …
</configuration>
于 2014-01-11T10:01:09.820 回答
0

这是 yuicompressor 版本 2.4.8,但问题仍然存在。

如果你在 linux 上,你可以在通过 yuicompressor 运行之前使用sed命令替换/*!文件中的 with。/*

我刚刚测试过的真实工作示例:

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
于 2020-01-08T22:15:56.543 回答