解决gulp-uglify压缩JS后在IE8下语法错误

使用 glup-uglify 压缩jQuery1.x后,在IE8浏览器中访问,会出现语法错误的提示。

使用开发者工具定位到是在以下代码的的 for 字的位置出错。

propFix:{for:"htmlFor",class:"className"}

这里可以判断出IE8认为 for 是关键字,不是字符串,所以解析失败,出现语法错误。

而IE9以上的浏览器能识别出是 for 是对象的键名,所以解析正常。

解决办法

查询 gulp-uglify 后资料得知,可以通过配置 screw_ie8false,使压缩后的JS代码支持IE8。

具体配置如下

var uglify = require('gulp-uglify');

var uglifyConfig = {
  compress: {screw_ie8: false},
  mangle: {screw_ie8: false},
  output: {screw_ie8: false}
};

var stream = gulp.src('xxx.js');
stream.pipe(uglify(uglifyConfig));

配置后,重新压缩的JS会被加上双引号,能够在IE8中正常运行。

propFix:{"for":"htmlFor","class":"className"}

相关链接