Cannot assign to read only property '__esModule' of #Object 的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/marko_zheng/article/details/82660311

Cannot assign to read only property ‘__esModule’ of #Object 的问题

问题背景:

我这里使用了Vue+elementUI构建的项目,项目中依赖echarts,webpack,babel等模块,打包后在高版本浏览器中没有问题,但是在低版本的浏览器中,谷歌1.7.X,或者IE8一下,就会报错

Cannot assign to read only property '__esModule' of #Object

解决方案

对于webpack 1.0,只需设置loose:当你使用babel-preset-env时为true。但是对于Webpack 2,loose模式无法解决此问题。

在stackoverflow上找到了好多解决方案,但是都没有解决我的问题,最后采用了一种方法

在build中添加了一个client.js文件

// client_patch.js, For Android 4.0
var defineProperty = Object.defineProperty;
Object.defineProperty = function (exports, name) {
  if (name === '__esModule') {
    exports[name] = true;
    return;
  }
  return defineProperty.apply(this, arguments);
};

在webpack.base.conf.js中的entry中添加

entry: {
    app:[
      path.resolve(__dirname, 'client.js'),
      './src/main.js'
    ]
}

猜你喜欢

转载自blog.csdn.net/marko_zheng/article/details/82660311
今日推荐