You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS Amplify部署Next.js应用失败:缺失deploy-manifest.json错误

解决AWS Amplify部署Next.js SSR/SSG应用时找不到deploy-manifest.json的问题

针对你遇到的构建失败问题,下面是几个经过验证的解决方案,按优先级排序:


1. 切换到Version 2的BuildSpec配置

你当前使用的是Version 1的BuildSpec,对于混合SSR/SSG的Next.js应用(尤其是Next.js 13+),Amplify的Version 2配置能更好地适配框架特性,自动处理部署清单的生成。修改你的buildspec.yml为:

version: 2
build:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

如果不想自定义BuildSpec,直接删除项目根目录的buildspec.yml,让Amplify自动检测Next.js框架,它会生成适配的默认配置。


2. 安装Amplify Next.js官方适配器

对于Next.js 13+(尤其是使用App Router)的场景,必须借助官方适配器来让Amplify识别新的目录结构并生成deploy-manifest.json:

  1. 安装依赖包:
npm install @aws-amplify/adapter-nextjs
  1. 在next.config.js中添加适配器配置:
const { withAmplify } = require('@aws-amplify/adapter-nextjs');

const nextConfig = {
  // 保留你原有的Next.js配置项
};

module.exports = withAmplify(nextConfig);

重新推送代码后,适配器会在构建阶段自动生成Amplify所需的部署清单文件。


3. 检查Next.js版本兼容性

确认你的Next.js版本和Amplify Hosting的兼容情况:

  • Next.js 12及以下:可以使用Version 1的BuildSpec,但需确保next build完成后.next目录完整无缺失。
  • Next.js 13+(App Router):必须使用Version 2 BuildSpec或官方适配器,否则Amplify无法解析新的框架结构。

4. 手动生成部署清单(临时应急方案)

如果上述方法都无法快速解决,可尝试在构建命令后手动生成deploy-manifest.json,强制告知Amplify当前应用类型:

修改BuildSpec的build阶段命令:

build:
  commands:
    - npm run build
    - echo '{"version": 1, "framework": "nextjs"}' > .next/deploy-manifest.json

验证步骤

  1. 本地执行npm run build,检查.next目录下是否存在deploy-manifest.json(使用适配器的话会自动生成)。
  2. 确认.gitignore没有误屏蔽.next目录下的关键文件(比如不要设置.next/**/*这样的规则,保留必要的构建输出)。

内容的提问来源于stack exchange,提问作者Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:44:53