Next.js Vercel部署未执行codegen命令,类型导入报错
解决Vercel构建时GraphQL Codegen类型模块找不到的问题
直接修改构建脚本
问题根源是Vercel执行next build前没有运行生成类型的pnpm gen命令,只需修改package.json里的build脚本,让它先执行类型生成再构建:
"scripts": { "dev": "next dev", "build": "pnpm gen && next build", "start": "next start", "lint": "next lint", "codegen": "graphql-codegen --require dotenv/config --config codegen.ts", "gen": "graphql-codegen --config codegen.ts" },
额外检查项
- 确认
codegen.ts里的输出路径正确,且生成的类型文件没有被.gitignore排除(如果文件不在Git仓库中,必须通过构建时生成来确保Vercel能访问到) - 若codegen需要环境变量,在Vercel项目的环境变量设置中添加对应变量,和本地
.env保持一致
原理说明
Vercel默认会调用项目的build脚本,修改后该脚本会先执行pnpm gen生成GraphQL类型,再启动Next.js构建,这样构建过程中就能找到所需的类型模块了。
内容的提问来源于stack exchange,提问作者mertk
相关产品推荐
相关产品推荐

