NPM Workspaces中多@prisma/client依赖的隔离配置咨询
解决Monorepo中Prisma类型冲突的依赖隔离方案
你的问题核心是Monorepo共享依赖导致Prisma类型文件冲突,完全可以通过npm配置实现指定依赖的子项目本地隔离,具体操作如下:
1. 配置依赖不提升规则
在项目根目录创建或修改.npmrc文件,添加以下配置,指定prisma和@prisma/client不被提升到根目录node_modules:
hoist-exclude[]=@prisma/client hoist-exclude[]=prisma
2. 重置依赖环境
删除根目录及所有子项目的node_modules文件夹,同时删除根目录的package-lock.json文件,确保依赖安装环境干净。
3. 重新安装依赖
在根目录运行npm install,此时每个子项目的node_modules会单独包含prisma和@prisma/client,不再共享根目录的依赖。
4. 使用子项目本地Prisma CLI
后续在子项目中执行Prisma命令时,优先使用子项目本地的CLI,避免调用根目录工具:
- 在
my-first-project目录下执行迁移命令:
npx --no-install prisma migrate dev --name whatever
或者直接调用本地CLI路径:
./node_modules/.bin/prisma migrate dev --name whatever
处理后,每个子项目的@prisma/client类型文件会生成在各自的node_modules中,不会互相干扰,也就不会出现“类型未找到”的错误。
内容的提问来源于stack exchange,提问作者pastel-bucket
相关产品推荐
相关产品推荐

