Vercel部署Next.js报错:Node版本不兼容+Next.js检测失败求助
解决方案
核心原因
Vercel构建环境默认使用的Node.js版本为14.20.0,而ffmpeg-static@5.1.0要求Node版本>=16,导致依赖安装失败,进而Next.js包未被成功安装,所以出现"检测不到Next.js版本"的错误。
具体解决步骤
指定项目Node.js版本
在项目根目录添加以下任意一种配置:- 创建
.nvmrc文件,内容为:
或者使用更高版本(比如1618,与你devDependencies中的@types/node@18.11.7匹配) - 直接在
package.json中添加engines字段:"engines": { "node": ">=16" }
Vercel会自动读取该配置,使用符合要求的Node版本进行构建。
- 创建
重新触发部署
在Vercel控制台选择你的项目,点击"Redeploy",并勾选"Clear build cache"选项,确保使用新的Node版本重新安装依赖。备选方案(不推荐,仅临时应急)
如果暂时无法升级Node版本,可以临时忽略引擎检查,在Vercel的部署设置中,将"Install Command"设置为:yarn install --ignore-engines但此方法可能引发其他依赖的兼容问题,建议优先使用指定Node版本的方案。
补充说明
你的开发环境本地Node版本应该满足>=16的要求,所以依赖安装正常;而Vercel默认的Node版本未达标,才导致生产部署失败。指定Node版本后,依赖安装成功,Next.js也能被正常检测到,后续的构建流程就能顺利执行。
内容的提问来源于stack exchange,提问作者János
相关产品推荐
相关产品推荐

