Vercel部署报错:已安装Next.js依赖却提示版本未检测到?
解决Vercel构建Next.js项目时的版本检测错误
问题描述
构建时触发以下错误:
Error: No Next.js version could be detected in your project. Make sure
"next"is installed in "dependencies" or "devDependencies"
项目通过create-next-app创建,package.json中已声明Next.js依赖,但报错依然存在,原package.json内容如下:
{ "name": "project1", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "node server.mjs", "lint": "next lint" }, "dependencies": { "@reduxjs/toolkit": "^1.8.5", "next": "^12.2.3", "react": "18.2.0", "react-dom": "18.2.0", "react-redux": "^7.2.8", }, "devDependencies": { "eslint": "8.20.0", "eslint-config-next": "12.2.3" } }
解决方案
1. 修复package.json语法错误
原package.json的dependencies中最后一项"react-redux": "^7.2.8",多了一个尾逗号,JSON语法不允许存在尾逗号,这会导致Vercel无法正确解析package.json,进而无法识别Next.js依赖。
修正后的package.json:
{ "name": "project1", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "node server.mjs", "lint": "next lint" }, "dependencies": { "@reduxjs/toolkit": "^1.8.5", "next": "^12.2.3", "react": "18.2.0", "react-dom": "18.2.0", "react-redux": "^7.2.8" }, "devDependencies": { "eslint": "8.20.0", "eslint-config-next": "12.2.3" } }
2. 本地验证构建
删除本地的node_modules和package-lock.json(或yarn.lock),重新安装依赖并构建:
rm -rf node_modules package-lock.json npm install npm run build
确认本地能正常构建后,再推送代码到Vercel。
3. 清除Vercel构建缓存
在Vercel项目的部署页面,点击「Redeploy」并勾选「Clear build cache」,强制重新拉取依赖并执行构建,避免缓存导致的问题。
内容的提问来源于stack exchange,提问作者subprimeloads
相关产品推荐
相关产品推荐

