获取Webpack 2以支持IE8

时间:2017-09-12 10:06:29

标签: internet-explorer-8 webpack-2 polyfills babel-polyfill

我想在一个大型项目中使用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 });时出现。我认为正在修复的功能'垫片。

它没有正确填充吗?我错过了一步吗?

1 个答案:

答案 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内容中