Cannot assign to read only property 'exports' of object '#<Object>' Babel踩坑经验

180 阅读1分钟

启动项目,发现cosole.log报错Cannot assign to read only property 'exports' of object '#<Object>',在网上查了原来是common.js es6混用了import 和module exports 报错,但是在另一个项目,同样用没问题,考虑可能是这个项目babel版本低导致,一个版本3.0 一个4.5,网上搜了可以在babel.config.js里面加一句sourceType: 'unambiguous'

  1. module.exports = {
  2. presets: [
  3. '@vue/app'
  4. ],
  5. sourceType: 'unambiguous'


网上有很多方法,可以改业务代码,安装其他插件,改动量都太大,这个亲测有效,尴尬的是自己找到试了一下没用,被人那有用,后面真有用,奇怪得很,项目太大,插件太多,启动容易报各种错,坑多心累 另外一个坑 引入别人项目代码时,一直报语法错误,在业务代码内,分析了下,有用到?和 ?? 方法就报错,分析是babel版本太低,不能解析新语法,改成&&和||了,&&有兼容字段取不到为undefined的情况, 例如 a&&a.b 当a为undefined时,就不往下走了 ||当前面为undefined,就取后面的值 例如 b=a||[] a为undefined b = []