【问题标题】:How to remove comments with BundleTransformer YuiJsMinifier如何使用 BundleTransformer YuiJsMinifier 删除评论
【发布时间】:2014-01-16 20:52:33
【问题描述】:

我正在使用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 压缩器removes comments by default。是的,它是一种删除,但它仍然像这样离开 cmets:

/* 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 移除 cmets。

https://github.com/yui/yuicompressor

以 /*! 开头的 C 风格 cmets被保留。这对 包含版权/许可信息的 cmets

我有什么办法可以通过使用BundleTransformer 来完全删除捆绑的缩小输出文件中的所有类型的 cmets? Google page speed 强烈建议我这样做。

【问题讨论】:

    标签: javascript asp.net-mvc-5 bundling-and-minification yui-compressor bundletransformer


    【解决方案1】:

    YUI 压缩器不支持删除重要的 cmets。

    我推荐你安装BundleTransformer.MicrosoftAjax 包。此后注册MicrosoftAjaxCssMinifierMicrosoftAjaxJsMinifier 作为默认的minifiers,并在Web.config 文件中添加以下配置设置:

    <configuration>
        …
        <bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
            …
            <microsoftAjax>
                <css commentMode="None" />
                <js preserveImportantComments="false" />
            </microsoftAjax>
            …
        </bundleTransformer>
        …
    </configuration>
    

    【讨论】:

      【解决方案2】:

      是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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-09
        • 2019-05-13
        • 2018-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多