react项目需要兼容到IE8,因为IE8中default等关键字问题,需要在webpack中加入es3ify-loader解决{default:value}和obj.default这种IE8不支持的格式,将其转换成{“default”:value}和obj[“default”]的格式,在使用webpack UglifyJsPlugin插件对代码进行压缩后发现,代码又出现了{default:value}和obj.default,通过查阅API发现是插件的问题。

参考API:
UglifyJS2 API

webpack UglifyJsPlugin 配置API

修改webpack.config.js配置

1
2
3
4
5
6
7
8
9
10
11
12
13
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
properties :false,
booleans:false,
drop_console:true
},
mangle:false,
output:{
keep_quoted_props:true
},
sourceMap:false
})

compress.properties:false 必须配置,防止将xxx[‘default’]改成xxx.default造成IE8报错

output.keep_quoted_props:true必须配置,防止将{‘default’:xxx}改成{default:xxx}

mangle:false最好配置,有时会造成IE8无法找到某个方法