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
jEdit宏,用于使用YUI compressor压缩.js