YUI Compressor 和“使用严格”提示

Posted

技术标签:

【中文标题】YUI Compressor 和“使用严格”提示【英文标题】:YUI Compressor and "use strict" hint 【发布时间】:2012-05-03 23:58:51 【问题描述】:

我一直在使用 YUI Compressor 来缩小 JS 文件。我有这个代码:

(function(global) 
    "use strict";

     var X=1;

    /*** my code here ***/

(window));

我用这个命令压缩它:

$> java -jar yuicompressor-2.4.7.jar test.js -o test.min.js --verbose

压缩输出文件中不存在“使用严格”提示。似乎 YUI 删除了所有提示。它输出这个警告:

[WARNING] Invalid hint syntax: use strict
(function(global) ---> "use strict" <--- ;var X=1;... 

虽然,我的代码在压缩后工作正常,但我想知道 YUICompressor 是否有一个参数来保留提示和/或避免该警告的方法。

有什么建议吗?谢谢。

【问题讨论】:

你的意思是除了编写严格的代码而没有让引擎纠正你吗? 哇,看起来 YUI 真的去掉了那些文本提示,因此自动删除了任何严格模式。 访问 yuilibrary.com 并为压缩器提交工单。 @Guumaster:您也可以为增强功能提交票证,而不仅仅是“错误”。所以我的建议仍然存在:-) @Kolink - 据我了解,“使用严格”的优势不仅在于它迫使人们更好地编码,还在于它允许某些浏览器优化代码处理。所以developer.mozilla.org/en/javascript/Strict_mode 声称“有时可以使严格模式代码比非严格模式的相同代码运行得更快”。 【参考方案1】:

部分解释可见here。虽然这个问题是关于闭包编译器的,但答案给了你一个提示(因为谷歌也有这个问题)。在闭包中可以使用--language_in=ECMASCRIPT5_STRICT

不幸的是,到目前为止,YUI Compressor 还没有这样的东西。至少我找不到类似的东西。

【讨论】:

请注意,JSLint 更喜欢 'use strict' 的函数形式,但 Closure 删除了函数形式并将其添加到文件的开头。所以仍然不是一个正确的解决方案。

以上是关于YUI Compressor 和“使用严格”提示的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ant 构建脚本中为 javascript 和 css 使用 YUI Compressor

PHPStorm自动压缩YUI Compressor配置

jEdit宏,用于使用YUI compressor压缩.js

YUI Compressor完成代码混淆示例

JS代码压缩使用YUI Compressor对js文件进行压缩处理

在线压缩图片(TinyPNG)/ JS/CSS/HTML(YUI Compressor)