Next.js自定义frontend目录结构下Vercel部署报错的解决方案咨询
解决Vercel部署自定义目录Next.js项目的
routes-manifest.json找不到问题 你的问题核心是Vercel默认的构建产物查找路径和你的项目实际输出路径不匹配,我来帮你一步步解决:
问题原因分析
你的Next.js核心代码放在frontend目录,执行next build frontend时,构建产物(包括routes-manifest.json)会生成在frontend/.next文件夹里,但Vercel默认会去项目根目录的.next文件夹找这些文件,所以才会触发找不到文件的报错。
具体解决办法
方法1:在Vercel项目设置中指定输出目录
这是最直接的操作方式:
- 打开你的Vercel项目后台,进入Settings -> Build & Development Settings
- 在Output Directory输入框中填写:
frontend/.next - 保存设置后重新触发部署,Vercel就会去正确的目录读取构建产物了
方法2:用vercel.json配置(推荐,便于版本控制)
如果你希望把部署配置纳入代码仓库,避免每次手动设置,可以在项目根目录创建vercel.json文件,内容如下:
{ "buildCommand": "npm run build", "outputDirectory": "frontend/.next" }
这个文件会告诉Vercel使用你定义的构建命令,并且到frontend/.next目录读取构建输出。
额外验证步骤
部署到Vercel之前,先在本地执行npm run build,检查frontend目录下是否生成了.next文件夹,且里面包含routes-manifest.json,确认本地构建流程正常,就能排除项目本身的构建问题。
关于你现有配置的说明
你的package.json里的scripts配置是完全正确的,next build frontend确实会指向frontend目录的Next.js项目完成构建;next.config.js里的alias和sass配置也没问题,不会影响构建产物的路径,无需调整。
内容的提问来源于stack exchange,提问作者Auxulry
相关产品推荐
相关产品推荐

