vue-cli2 在升级 vue-cli3打包后,异步加载组件代码报 Cannot assign to read only property 'exports' of object 这让我有点懵逼,因为在cli2的时候是好用的,cli3怎么就有问题了呢!后来去cli github看了一下真有这个问题。
报错代码:
module.exports = file => () => import('@/views/' + file + '.vue')
解决方法:
找到 babel.config.js 文件加入以下代码:
module.exports = {
presets: [
'@vue/app'
],
sourceType: 'unambiguous' // 关键是这一句
}
Github issues:
https://github.com/vuejs/vue-cli/issues/2746
原因分析:
在新的webpack已经不允许 import 和 module.exports 共存,但是我这段代码刚好就这么写了,导致浏览器报错!这时就需要这只babel,sourceType来猜测类进行转码。