解决gulp-uglify压缩JS后在IE8下语法错误
使用 glup-uglify
压缩jQuery1.x后,在IE8浏览器中访问,会出现语法错误的提示。
使用开发者工具定位到是在以下代码的的 for
字的位置出错。
propFix:{for:"htmlFor",class:"className"}
这里可以判断出IE8认为 for
是关键字,不是字符串,所以解析失败,出现语法错误。
而IE9以上的浏览器能识别出是 for
是对象的键名,所以解析正常。
解决办法
查询 gulp-uglify
后资料得知,可以通过配置 screw_ie8
为 false
,使压缩后的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"}
相关链接
- Support IE8 #214 https://github.com/terinjokes/gulp-uglify/issues/214