试图使Webpack 3与IE8兼容

时间:2018-07-04 14:00:12

标签: javascript webpack ecmascript-6 webpack-2 defineproperty

由于某些需要IE8兼容模式的旧产品,我们不能使用Object.defineProperty调用。

我们正在使用ES6语法从TypeScript模块构建单个大型捆绑包。如果那很重要,我们就不会利用实时模块加载,热重新加载,动态模块加载和任何类似的技术。

我知道这里in this thread的官方限制和讨论。我正在尝试应用不太好的修正/解决方法,如下所示。

我已经检查了Webpack创建的捆绑软件,据我所知,唯一使用的地方是当代码访问default导出的成员时。

我已经从技术上更改了代码,以删除defineProperty,并使用像这样的简单“一次性”字段分配。

__webpack_require__.d = function(exports, name, getter) {
  if(!__webpack_require__.o(exports, name)) {
    exports[name] = getter();
    //Object.defineProperty(exports, name, {
    //  configurable: false,
    //  enumerable: true,
    //  get: getter
    //});
  }
};

乍看之下一切正常。但是由于我不是Webpack和ES6模块规范专家,所以我想问一下此更改的确切影响是什么?在这种特定情况下这样做安全吗?

0 个答案:

没有答案