我有一个Yeoman项目,在其Javascript文件上使用grunt-contrib-uglify。当在Selectvizr库上运行时(使用Bower引入),生成的文件如下所示:
!function(win){return}(this);
我认为这是因为如果浏览器不是IE,Selectivizr会设置为什么都不做,所以也许在Grunt执行环境中它正在做那个?
所以我想知道是否可以在Selectivizr上运行Uglify并生成可用的东西?
答案 0 :(得分:2)
Uglify处理JavaScript仅用于优化。它的工作是以任何可能的方式使文件超小。为此,它会检测代码中的任何非变量条件,例如if (true) { return; }
。由于true
始终为true,因此此条件的功能将被解释,并针对。
所以,它不是一个Uglify错误,因为它正确地完成了它的工作。我不熟悉Selectivizr正在使用的技巧,但如果它有效,它就可以工作。
不幸的是,我能想到的唯一解决办法就是不让Uglify在该文件上运行,而是将其直接复制到dist/
。
答案 1 :(得分:1)
var result = navigator.userAgent.match(/MSIE (\d+)/);
if (result) {
var ieVersion = result[1];
}
else {
return;
}
请使用上面的代码来解决此问题。我也遇到了同样的问题,在更新这一行后它已被修复。
答案 2 :(得分:0)
另一个解决方案是评论/删除selectivizr.js中的第32行:
if (/*@cc_on!@*/true) return;
这是打破uglify / concat任务的行。再次运行它会起作用。
更多关于Github