部署Node/Express+Create React App项目到Vercel出现警告和404问题求助
Vercel部署问题原因与解决方案
问题1:构建日志builds配置警告
产生原因
你参考的教程使用了Vercel已废弃的builds配置项,当前Vercel统一使用functions配置处理服务端路由逻辑,配置文件中存在的builds字段会强制覆盖Vercel项目后台的默认构建与开发设置,因此触发该警告。
问题2:部署后访问返回404
产生原因
主要由配置失效导致:一是废弃的builds配置无法正确识别Express后端的入口文件,服务端路由没有被Vercel云函数正常代理;二是重定向规则配置错误,没有把前端静态资源请求、后端接口请求转发到对应的目标路径,导致请求匹配不到资源返回404。
具体解决步骤
- 调整项目根目录下的
vercel.json配置,删除所有builds相关配置,替换为适配当前Vercel规则的配置内容,参考示例如下(可根据你的实际项目结构调整路径):
{ "version": 2, "buildCommand": "cd client && npm install && npm run build", "outputDirectory": "client/build", "functions": { "api/**/*.js": { "runtime": "@vercel/node@3" } }, "rewrites": [ { "source": "/api/(.*)", "destination": "/api/$1" }, { "source": "/(.*)", "destination": "/" } ] }
如果你的Express入口文件存放在根目录的index.js而非api文件夹下,可将rewrites第一条规则的目标路径修改为你的入口文件路径,比如/index.js。
- 确认Express入口文件没有硬编码监听端口,必须使用
process.env.PORT读取Vercel自动分配的端口,否则服务会启动失败。 - 到Vercel项目后台删除原有自定义构建设置,重新推送代码触发部署即可。
内容的提问来源于stack exchange,提问作者king60096009
相关产品推荐
相关产品推荐

