我正在使用与grunt-contrib-uglify任务 Hook 的Grunt来最小化我的应用程序中的JavaScript。

缩小后,它将删除除第一个语句之外的所有'use strict'语句,因此我得到了一个巨大的JavaScript文件,该文件的顶部带有“use strict”指令。

问题是全局'use strict'指令使浏览器以“严格模式”执行我在项目中使用的每个库的代码,这会导致错误,因为并非每个第三方代码都是为严格模式编写的。

关于如何解决这个问题的任何想法?

最佳答案

如果您用IIFE包装所有脚本,那么grunt-contrib-uglify不会将该语句定位到停止位置,而是将其保留在您编写的每个IIFE中。

(function() {
    'use strict';

    // do stuff
})();

是的,这是更多代码,但是如果您用gzip压缩文件,则应该不是问题。同样,这会将您定义的所有变量都保留在全局范围之外,从而提高性能代码。

关于javascript - UglifyJS 'use strict'语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20684723/

10-12 16:24