我的系统整体有几百个组件和模块,异步组件大概有200个。使用webpack2 + vue2.2.4 + vue-router2.3.0 + vuex2.2.1。vue-router使用hash模式。
在一段时间内,某个异步组件会加载失败。
然后过几天,这个问题会随机转移到另外一个异步组件上,出错的异步组件不是特定的。
只要是从其他组件跳转到这个异步组件就会加载失败。但是加载失败后,F5刷新页面,异步组件又会加载成功。
测试过更新vue全家桶到最新和webpack3最新版,还是有这个问题。
报错信息:
[Vue warn]: Failed to resolve async component: function (){var n={};return t.commit(“loading”,n),e().then(function(e){return n.close(),Promise.resolve(e)}).catch(function(e){return n.close(),Promise.reject(e)})}
Reason: TypeError: Cannot read property ‘call’ of undefined
跟踪进去,发现是webpack生成的代码里面有个地方调用报错。modules[moduleId].call这个报错,modules根本没有moduleId对应的值
应该是你在异步加载尚未成功的时候有使用这个组件吧?