我正在使用Grunt与grunt-contrib-uglify
任务联系起来,以便在我的应用中缩小JavaScript。
缩小后,除了第一个语句之外,它删除了每个'use strict'
语句,所以我得到一个巨大的JavaScript文件,顶部有'use strict'指令。
问题是全局'use strict'
指令使浏览器在“严格模式”下执行我在项目中使用的每个lib的代码,并且它导致错误,因为不是每个第三方代码都被写入对于严格模式。
关于如何解决这个问题的任何想法?
答案 0 :(得分:7)
如果您使用IIFE包装所有脚本,则grunt-contrib-uglify
不会将该语句置于停止位置,而是将其留在您编写的每个IIFE中。< / p>
(function() {
'use strict';
// do stuff
})();
是的,它有更多的代码,但是如果你对文件进行gzipping它应该是一个非问题。此外,这将保留您在全局范围之外定义的任何变量,从而产生更高性能的代码。