Vercel部署Next.js应用时TypeScript构建失败求助
Vercel部署Next.js应用TypeScript构建失败的排查方案
问题概述
Vercel部署时持续触发构建失败,错误提示:
看起来你正尝试使用TypeScript,但未安装必要的依赖包。请执行以下命令安装@types/node:
npm install --save-dev @types/node
若不使用TypeScript,请从包根目录删除tsconfig.json文件(以及app和pages目录下的所有TypeScript文件)。
Next.js构建进程退出,代码:1,信号:null
错误:命令"npm run build"退出,代码1
已尝试操作:清除缓存、重装node_modules、降级TypeScript及相关类型包、确认@types/node已安装、未配置NODE_ENV变量。
项目配置
package.json
{"name": "euphoniczen","version": "0.1.0","private": true,"type": "module","scripts": {"dev": "next dev --turbopack","build": "prisma generate && next build","start": "next start","lint": "next lint"},"dependencies": {"@auth/prisma-adapter": "^2.8.0","@base-ui-components/react": "^1.0.0-alpha.8","@emotion/react": "^11.14.0","@emotion/styled": "^11.14.0","@mui/icons-material": "^6.4.11","@mui/material": "^6.4.8","@mui/styled-engine-sc": "^6.4.6","@paddle/paddle-js": "^1.4.0","@paddle/paddle-node-sdk": "^2.7.0","@paypal/paypal-server-sdk": "^1.0.0","@paypal/react-paypal-js": "^8.8.3","@prisma/client": "^6.6.0","axios": "^1.8.4","bootstrap-icons": "^1.11.3","date-fns": "^4.1.0","dompurify": "^3.2.5","dotenv": "^8.2.0","flowbite-react": "^0.11.7","gsap": "^3.12.7","lodash": "^4.17.21","lucide-react": "^0.509.0","micro": "^10.0.1","motion": "^12.5.0","next": "15.2.3","next-auth": "^5.0.0-beta.25","polished": "^4.3.1","react": "^19.0.0","react-dom": "^19.0.0","react-spinners-kit": "^1.9.1","styled-components": "^6.1.16","zod": "^3.24.3"},"devDependencies": {"@eslint/eslintrc": "^3","@tailwindcss/postcss": "^4","@types/node": "^20.17.46","@types/react": "^19.1.4","@types/react-dom": "^19.1.5","autoprefixer": "^10.4.21","eslint": "^9","eslint-config-next": "15.2.3","postcss": "^8.5.3","prisma": "^6.6.0","tailwindcss": "^4.0.15","typescript": "^5.8.3"}}
tsconfig.json
{"compilerOptions": {"target": "ES2017","lib": ["dom","dom.iterable","esnext"],"allowJs": true,"skipLibCheck": true,"strict": false,"noEmit": true,"incremental": true,"module": "esnext","esModuleInterop": true,"moduleResolution": "node","resolveJsonModule": true,"isolatedModules": true,"jsx": "preserve","plugins": [{"name": "next"}]},"include": ["next-env.d.ts",".next/types/**/*.ts","**/*.ts","**/*.tsx"],"exclude": ["node_modules"]}
解决方案
- 对齐Node.js版本:在Vercel控制台「Settings → General → Node.js Version」选择20.x,与本地
@types/node@20.17.46版本匹配,避免类型定义不兼容。 - 修复TypeScript模块解析:由于package.json设置了
"type": "module",将tsconfig.json中moduleResolution改为bundler,适配Next.js 15的ES模块模式:"moduleResolution": "bundler" - 强制依赖安装:在Vercel构建设置中,将「Install Command」改为
npm ci,确保依赖完全按照lock文件安装,避免版本偏差。同时可修改build命令,强制安装@types/node:"build": "npm install --save-dev @types/node && prisma generate && next build" - 清除远程缓存:进入Vercel「Deployments」页面,选择失败部署点击「Redeploy」并勾选「Clear build cache」,彻底清理远程缓存后重新构建。
- 降级TypeScript版本:Next.js 15官方推荐TypeScript 5.4-5.7,将typescript降级到5.7.2:
npm install --save-dev typescript@5.7.2
内容的提问来源于stack exchange,提问作者Cultertraz
相关产品推荐
相关产品推荐

