起因
事情的起因是这样的,我用vite构建了一个vue3的项目,vue-router以及pinia都是通过官网的下载方式下载的
下载之后我vue-router的版本以及pinia的版本分别是 "vue-router": "4" 以及 "pinia": "^2.1.6",此时我的项目没有问题,一切正常,因为我在做一个基于monorepo架构的项目来管理,该文件下有两个文件,一个是nestjs的项目,一个就是我这里的vue3项目,我在配置完monorepo之后,再次启动这个vue3项目发现报错了。
第一次尝试
这里我想到的是vue-router版本问题, 但是我去官网看,也没有找到合适的办法,我问了两个gpt,他们俩给我的方法我也都去看了,都是去看源码,看看哪个地方错了。就在我一筹莫展时,我给项目打包看了一下,发现可以运行,我就纳闷了,为啥在开发环境报错,生产环境竟然好了。
第二次尝试
接下来我又去试了一下vue-router的版本,第一次升级的是4.0.11版本,发现没有上面浏览器的报错,但是又出现了其他报错发现是vue-demi 和vue-router兼容性问题, vue-demi是pinia的依赖库,我又去看了vue-demi发现也找不到原因,这个时候我把这俩给删了,重新下载我发现了一个警告
js
.. | Progress: resolved 766, reused 744, downloaded 0, added 0, done
WARN Issues with peer dependencies found
meng-chat-vite
└─┬ pinia 2.1.6
└── ✕ unmet peer vue@"^2.6.14 || ^3.3.0": found 3.2.36
Done in 2.4s
就是这个警告,他说vue版本要在2.6.14-3.3.0,我发现我的vue版本是3.2.26在这个区间,很离谱莫名奇妙。
第三次尝试
我尝试几次无果,想着试试逆版本而行我就试了最新的3.3.4版本的vue,发现突然就好了,并且那个警告也没有了,这vue-router就跟个逆子一样, 项目中其他问题都好排查,就怕工程问题,包的兼容性。总之有跟我遇到同样问题的家人们,希望能够对你们有帮助