Prisma数据库种子导入外部模拟数据时出现模块找不到错误
Prisma数据库种子导入外部模拟数据时出现模块找不到错误
看起来你遇到的问题是ts-node在执行Prisma种子文件时,没法识别你配置的@/路径别名,导致找不到mock-users模块。我来给你几个可行的解决办法:
改用相对路径(最直接的方案)
把带别名的导入改成相对路径,比如如果你的seed.ts在prisma文件夹下,而mock-users.ts在项目根目录的utils/server里,那么导入语句可以改成:import mockUsers from '../utils/server/mock-users'这样ts-node不用处理路径别名,直接就能定位到文件,快速解决问题。
配置ts-node识别路径别名
如果你想保留@/别名,可以按以下步骤操作:- 确保你的
tsconfig.json里已经正确配置了路径映射,比如:{ "compilerOptions": { "baseUrl": ".", // 指向项目根目录 "paths": { "@/*": ["src/*"] // 假设你的utils文件夹在src目录下,根据实际情况调整 } } } - 安装
tsconfig-paths依赖,用来让ts-node识别路径别名:npm install tsconfig-paths --save-dev - 修改Prisma的seed命令,在ts-node后面加上
-r tsconfig-paths/register,让它加载路径配置。比如在package.json里:"prisma": { "seed": "ts-node -r tsconfig-paths/register --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts" }
之后再执行
npx prisma db seed应该就能正常识别别名了。- 确保你的
排查路径配置是否正确
可以先手动用ts-node运行种子文件,看看报错信息有没有变化:ts-node prisma/seed.ts同时检查
tsconfig.json里的baseUrl和paths是否和你的项目文件结构匹配,比如@/*是不是真的对应到了你存放mock数据的目录。
备注:内容来源于stack exchange,提问作者Zohaib Amir
相关产品推荐
相关产品推荐

