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

Next JS SSG应用在Amazon Amplify部署时构建失败问题求助

故障排查与解决方案

从你提供的构建日志可以看出,错误触发在next build && next export脚本执行阶段,返回非零退出码1,但当前日志没有输出Next.js构建过程的具体报错信息,可按照以下优先级排查问题:

1. 优先本地复现验证

先在本地开发环境执行 npm run build 命令,确认本地是否可以正常构建完成:

  • 如果本地也报错,可直接根据本地抛出的具体错误修复代码问题,常见原因包括:
    • 代码存在语法错误、依赖未正确安装
    • 使用了next export不支持的能力:包括getServerSideProps、增量静态再生(ISR)、Next.js API路由等
    • 静态资源引用路径错误
  • 如果本地可以正常构建,再排查Amplify平台侧的配置问题

2. Node版本兼容性修正

日志显示Amplify构建环境使用的Node版本为v12.21.0,如果你使用的Next.js版本≥12,要求Node版本最低为v12.22.0,版本不匹配会直接导致构建失败。
修复方式:在Amplify控制台的应用「环境变量」配置页,添加变量AMPLIFY_NODE_VERSION,值设置为和本地开发一致的兼容版本(推荐v14、v16的LTS版本),保存后重新触发构建。

3. 检查Amplify构建配置

确认你的amplify.yml配置和SSG部署要求匹配,重点检查输出目录配置:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm install
    build:
      commands:
        - npm run build
  artifacts:
    # next export的输出目录为out,必须配置正确
    baseDirectory: out
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

如果baseDirectory配置为.next会导致Amplify找不到构建产物,触发部署失败。

4. 其他常见问题修复

  • 依赖缓存异常:可将preBuild的命令修改为rm -rf node_modules package-lock.json && npm install,强制清除缓存重装依赖
  • 构建被ESLint错误中断:如果项目开启了构建时ESLint校验,可在next.config.js中添加以下配置临时跳过校验,排查是否为该原因导致:
    module.exports = {
      eslint: {
        ignoreDuringBuilds: true,
      },
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:09:04