【问题标题】:YUI Compressor and "use strict" hintYUI Compressor 和“使用严格”提示
【发布时间】: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 声称“有时可以使严格模式代码比非严格模式的相同代码运行得更快”。

标签: javascript yui-compressor minify use-strict


【解决方案1】:

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

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

【讨论】:

  • 请注意,JSLint 更喜欢 'use strict' 的函数形式,但 Closure 删除了函数形式并将其添加到文件的开头。所以仍然不是一个正确的解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-08-03
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
相关资源
最近更新 更多