Vue: Uncaught TypeError: Cannot read property 'component' of undefined

1,859 阅读2分钟

这两天在做项目优化,由于自己的项目是嵌入到qiankun主应用项目中的一个子应用,就想着打包的时候vue、vue-router、element-ui这些依赖不打包,使用主应用中的依赖。

但是项目打包运行之后就一直在报错,控制台报错,具体如下:

项目中有个路由始终加载不出来,打印信息看的话,路由信息对应的组件是空,首先想到的是不是组件有问题,我把组件内容全部注释,就写了个基础div,部署完果然是没问题的,这个时候我就觉得是组件出了问题,就去对比组件打包之后的chunk文件,发现这个组件对应的chunk特别大,有2m左右,这个时候理所当然是给chunk减减负,我把组件中一些依赖放到了main.js中,打包之后不出所料,果然还是不行,这个时候就很崩溃了,有点不知所措。一般这种情况我建议大家抽根烟或者带薪蹲坑,放松一下也许就会有思路了,在蹲坑的时候刷刷手机,看到了一篇文章,大致内容如下:

答案就在回答里唯一能看到的一行,有了这个提示我果断打印了一下主应用vue和vue-router依赖版本,主应用:vue:2.6.11,vue-router:3.3.4,本项目:vue:2.6.12,vue-router:3.5.1,版本还是有差距的,然后我就把本地的版本改成了与主应用一样的版本,果然是一样抽风了。经过长时间的折腾,我用我的崩溃验证了qiankun里的共享依赖并不建议 这句话 ,特此记录一下,以便给大家一个解决问题的思路和方向。

time!