使用prisma-extension-pagination时触发Cannot find module错误(pnpm环境)
解决Prisma与prisma-extension-pagination配合使用的模块找不到问题
重新生成Prisma客户端
报错提示找不到.prisma/client/default,这个目录是prisma generate命令生成的,执行以下步骤:- 在项目根目录运行
pnpm prisma generate - 检查
schema.prisma中的generator配置是否正确:generator client { provider = "prisma-client-js" }
- 在项目根目录运行
调整pnpm的hoisting配置
pnpm默认的严格依赖隔离可能导致@prisma/client的内部模块路径异常,在package.json中添加如下配置:{ "pnpm": { "hoist": true, "shamefully-hoist": true } }然后删除
node_modules和pnpm-lock.yaml,重新执行:pnpm install pnpm prisma generate验证版本兼容性
你当前使用Prisma 5.13.0和prisma-extension-pagination 0.7.3,可能存在版本不匹配问题:- 升级扩展到最新版本:
pnpm add prisma-extension-pagination@latest - 如果升级后仍有问题,可尝试降级Prisma到扩展明确支持的版本(参考扩展的更新日志确认兼容范围)
- 升级扩展到最新版本:
确认代码导入与扩展使用方式
确保代码中正确导入并使用扩展:import { PrismaClient } from '@prisma/client' import { pagination } from 'prisma-extension-pagination' const prisma = new PrismaClient().$extends(pagination())避免使用相对路径导入PrismaClient,确保依赖解析逻辑正确。
容器环境下的构建检查
从错误路径/app来看,你可能在Docker容器中运行项目:- 在Dockerfile中添加
RUN pnpm prisma generate命令,确保构建阶段生成Prisma客户端,不要依赖本地生成的文件 - 确认容器内的项目路径与本地一致,避免路径映射导致的模块寻址错误
- 在Dockerfile中添加
内容的提问来源于stack exchange,提问作者AndrewB87
相关产品推荐
相关产品推荐

