NextJs Vercel 部署错误:"routes-manifest.json" 找不到。

8

我的Next.js应用程序之前可以正常工作,我添加了一些文件来更新代码,现在它无法在Vercel上部署我的应用程序。给出了以下错误:

输入图像描述

我尝试谷歌搜索这个错误,但我的情况是独特的。

这是我的Git仓库:https://github.com/usman-174/google-calendar-frontend

这是我的package.json文件中的脚本标签:

 "scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"export": "next export",
"lint": "next lint",
"lint-fix": "next lint --fix"
},

next.config.js

module.exports = {
distDir: 'build',
}
8个回答

8
假设您正在使用turbopnpm
1. 在package.json文件中验证您的软件包名称。
想象一下,您有这样的结构:
root/
├─ apps/
│  ├─ web/
├─ packages/
│  ├─ tsconfig/

这是你的 pnpm-workspace.yaml 文件:
packages:
  - "apps/*"
  - "packages/*"

然后你必须确保在你的web项目的package.json文件中,name字段也代表着web,就像这样:
{
    "name": "web",
    "scripts": {
        "dev": "next dev",
        "build": "next build",
    },
    // ...
}

2. 仔细检查你的根目录下的 `package.json` 和 `turbo.json` 文件。
在 turborepo 项目中,一个最简化的根目录下的 `package.json` 文件如下:
{
    "scripts": {
        "build": "turbo run build",
        "dev": "turbo run dev",
    },
    "devDependencies": {
        "turbo": "^1.8.3"
    },
    "packageManager": "pnpm@7.15.0"
}

在根目录下还有一个名为 turbo.json 的文件。
{
    "$schema": "https://turbo.build/schema.json",
    "pipeline": {
        "build": {
            "dependsOn": ["^build"],
            "outputs": [".next/**", "!.next/cache/**"]
        },
        "dev": {
            "cache": false,
        }
    }
}

3. 检查您在Vercel UI中的buildinstall命令。
前往Vercel UI中您项目的设置 -> 常规选项卡,并验证命令:

Build and Install

构建

命令应该是:build
cd ../../ && pnpm run build --filter=web...

并且 install 命令(假设您正在使用 pnpm)

pnpm install

4. 在 Vercel UI 中检查 "根目录"

在 Vercel UI 中,转到项目的 Settings -> General 选项卡,并验证项目路径:

Project Root

验证一下它是否代表了你的next.js项目路径:apps\web

1
我爱你,这帮了很大的忙 ❤️ - nmu

3
覆盖构建文件夹解决了我的问题。 enter image description here

2

问题在于我们在package.json中使用了'latest'作为下一个版本。我将其修复为之前的nextjs版本,即12.3.1,目前看来已经解决了部署问题。

但是我们仍在等待Vercel支持最佳方式更新Vercel上的Next.js版本,或者这是他们端口的某种错误。


2
我也遇到了这个错误,因为我的应用程序的根目录不在Git存储库的顶级目录中,所以Vercel无法找到.next文件夹。
我通过进入我的Vercel项目的Vercel仪表板,然后 -> 设置 -> 常规并将根目录设置为我的应用程序的子目录路径来修复它: enter image description here

0

在我的情况下,我的文件里有几个错误。

Error: `'` can be escaped with `'`, `‘`, `'`, `’`.  react/no-unescaped-entities

这些信息被隐藏在Vercel构建日志中,因为我忘记了在next.config.js中设置以下内容。

eslint: {
  ignoreDuringBuilds: true,
}

这只是显示了您的错误,而不是实际导致失败的原因。

间接启用eslint解决了我的问题,因为它帮助我找到了真正的错误。


0
  1. 运行 npm run build 命令(检查生成文件夹中的所有文件)
  2. 创建 .next 文件夹,将生成文件夹中的所有文件移动到 .next 中
  3. 将您的 .next 文件夹提交到 Vercel 或者 Git。

0
在我的情况下,请确保项目中的文件夹名为“web”,且其中的JSON名称也应该是“web”!

0

我在使用 nx 集成应用时遇到了同样的错误。我在 Vercel 项目中更改了设置,然后它就正常工作了。

以下是已生效的设置:

Vercel settings that worked for next js app in nx integrated app


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接