我想在一个大型项目中使用Webpack 2,该项目仍然必须支持IE8。
我已安装babel-preset-env
,因此我可以轻松弃用任何IE<将来,每个浏览器都不会被这个项目所支持。
根据babel-preset-env自述文件"如果您的目标是IE 8,Chrome 55 [babel-preset-env]将包含IE 8所需的所有插件,因为您需要同时支持两者。 #34;
据我了解,我还需要安装babel-polyfill
主要用于IE5垫片,还要安装我可能希望使用的ES6和7功能的polyfill。
但是安装了这些东西后,我的代码仍然会在IE8(在Browserstack中)首次运行Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
时出现。我认为正在修复的功能'垫片。
它没有正确填充吗?我错过了一步吗?
答案 0 :(得分:0)
之前我遇到过同样的问题,这就是我要解决的问题。
在es6功能中,
类可以使用get定义属性并设置为封装字段。
但是IE8并没有引起人们的注意。
因为不支持defineProperty方法see the docs,
所以我们将整个代码模式更改为如下所示
let val1;
class className {
methodName() {
this.val2 = 'test';
//code here
}
getVal1() {
return val1;
}
setVal1(_val1) {
val1 = _val1;
}
getVal2() {
return this.val2;
}
setVal2(_val2) {
this.val2 = _val2;
}
}
module.exports = className;
我建议将'es3ify'see the link,github es3ify添加到IE7 / 8的webpack内容中