pnpm monorepo中prisma-nestjs-graphql生成器强制使用prisma@5.0.0问题
解决pnpm + Monorepo中prisma-nestjs-graphql生成器使用错误Prisma版本的问题
核心原因
pnpx默认会拉取最新版的Prisma,而非项目本地指定的版本;同时prisma-nestjs-graphql的peerDependency范围允许v5.x版本,导致临时环境自动安装了Prisma@5.0.0。
解决方案
1. 使用pnpm exec执行本地Prisma版本
放弃pnpx,改用pnpm exec调用项目node_modules中已安装的指定版本Prisma:
pnpm exec prisma generate
该命令会优先使用当前项目(root/apps/server)下node_modules里的Prisma@4.15.0,避免临时下载最新版。
2. 强制锁定prisma-nestjs-graphql的Prisma依赖版本
在项目(或Monorepo根目录)的package.json中添加pnpm overrides配置,强制prisma-nestjs-graphql使用指定的Prisma版本:
"pnpm": { "overrides": { "prisma-nestjs-graphql>prisma": "^4.15.0" } }
添加后执行pnpm install重新安装依赖,确保依赖树中prisma-nestjs-graphql关联的Prisma版本被强制替换为4.15.0。
3. 用pnpx指定具体版本执行
如果必须使用pnpx,直接在命令中指定要使用的Prisma版本:
pnpx prisma@4.15.0 generate
4. 统一Monorepo内的Prisma版本
在Monorepo根目录的package.json或pnpm-workspace.yaml中,确保所有子项目的Prisma(prisma和@prisma/client)版本保持一致,避免跨项目版本冲突:
// 根package.json示例 "devDependencies": { "prisma": "^4.15.0" }, "dependencies": { "@prisma/client": "^4.15.0" }
同时建议子项目依赖引用根版本(使用workspace:*标识)。
验证
执行上述修复后,重新运行生成命令,检查是否还出现版本不匹配的警告,同时查看临时文件路径是否已切换为Prisma@4.15.0。
内容的提问来源于stack exchange,提问作者Meds
相关产品推荐
相关产品推荐

