Next.js Monorepo中Prisma Client路径解析错误求助
解决思路
1. 检查Yarn Workspaces依赖隔离
- 确认
investments和digital-assets子项目的package.json中,@prisma/client都是本地依赖,未被放在根package.json的共享依赖里。如果之前误设为共享,Yarn会优先使用统一版本,导致路径混乱。 - 针对
investments子项目单独重装依赖:yarn workspace investments install --focus,强制Yarn在该子项目本地node_modules安装独立的@prisma/client。
2. 修正Prisma生成配置
- 打开
investments/prisma/schema.prisma,确保generator client块指定正确输出路径:generator client { provider = "prisma-client-js" output = "./node_modules/@prisma/client" } - 在
investments目录下重新生成客户端:npx prisma generate,保证生成文件落在本地node_modules内。
3. 清理缓存与构建产物
- 删除所有冗余文件:
rm -rf node_modules */node_modules */.next */prisma/client - 清除Yarn缓存:
yarn cache clean,之后在根目录重新执行yarn install。
4. 调整Next.js模块解析规则
- 在
investments/next.config.js中添加规则,强制优先读取本地node_modules:const path = require('path'); module.exports = { webpack: (config) => { config.resolve.modules.unshift(path.resolve(__dirname, 'node_modules')); return config; }, }; - 检查子项目和根目录的
tsconfig.json/jsconfig.json,确保没有错误的paths配置导致@prisma/client被重定向到其他子项目。
5. 排查版本冲突问题
- 统一两个子项目的
@prisma/client版本,版本不一致可能导致Yarn在子项目中安装多版本,引发路径识别错误。 - 执行
yarn workspaces info查看依赖树,确认investments的@prisma/client指向本地node_modules。
内容的提问来源于stack exchange,提问作者Jhonycage
相关产品推荐
相关产品推荐

