报错问题

使用pnpm管理多个代码库vue版本不一致,代码库编译的vue版本用了另外一个库的vue版本导致编译失败

一个代码库我们假设叫他为A使用的是vue2.6,但是另外一个代码库我们假设他叫B依赖vue2.5,然后A代码库有依赖了B代码库,然后这时候vue版本就混乱了。

A编译的之后用了B版本库依赖的vue2.5版本,错误了,但是vue-template-compiler又用的是他本身的vue2.6的,导致两者版本不匹配,所以就出了问题。

但是为啥vue用的是错的,vue-template-compiler是对的,没有都用错。这个就奇怪了。

然后去看这两个有啥区别,发现A项目的vue-template-compiler写在了devDependencies,B项目也是写在了devDependencies下面,但是这样写没有问题。vue-template-compiler就是开发阶段才使用。

vue是线上运行阶段也要用的东西。看了node_module本地也都是对的,不同库的node_module版本也都是对的,问题还在排查中

最终解决办法是pnpm-workspace.yaml仅保留了一个项目,这下没有污染的问题了。

packages:
  - 'packages/aaa'
link-workspace-packages: true

这下编译aaa项目没有问题了