monorepo同时编译vue2和vue3项目
2023年2月16日 • ... • ☕️ 1 min read
一个monorepo项目中使用了vue3作为主要版本,vite编译没啥大问题。但是最近一些特殊需要,需要单独加一个vue2的项目。照着网络一番配置,最后pnpm run build的时候,报错了
failed to load config from .../vite.config.js
error during build:
Error:
Vue packages version mismatch:
- vue@3.2.45 (/node_modules/.pnpm/vue@3.2.45/node_modules/vue/index.js)
- vue-template-compiler@2.7.14 (/node_modules/.pnpm/registry.npmmirror.com+vue-template-compiler@2.7.14/node_modules/vue-template-compiler/package.json)
原因是vue-template-compiler@2.7.14
会自动找依赖,包里并没有指定vue@2.7.14
的依赖。所以用pnpm作为包管理工具的时候,就会出错。
解决办法
在package.json配置中添加:
{
"pnpm": {
"packageExtensions": {
"vue-template-compiler": {
"peerDependencies": {
"vue": "2.7.14"
}
}
}
}
}
手动指定依赖之后,再次install,就可以正常运行了。