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

使用AWS Amplify部署Next.js应用失败,请求技术支持

解决AWS Amplify部署Next.js(Yarn构建)失败的问题

针对你遇到的三个核心问题,逐个给出具体修复方案:

1. 处理Failed to set up process.env.secrets警告

  • 登录Amplify控制台,进入你的项目→「App Settings」→「Environment variables」,检查所有需要的密钥是否已正确添加,变量名要和代码中引用的完全一致(前端可访问的变量需以NEXT_PUBLIC_开头,服务器端变量无需前缀)。
  • 不要在next.config.js中手动赋值process.env下的密钥,Amplify会自动将配置的环境变量注入构建流程。
  • 清理构建缓存:在「Build history」中选择最近一次失败的构建,点击「Redeploy with cache cleared」,避免旧缓存导致的变量读取异常。

2. 修复next.config.js配置无效问题

  • 检查语法规范:Next.js 12及以下版本请使用module.exports导出配置(Amplify构建环境对CommonJS兼容性更好),避免使用ES模块的export default;13+版本若使用App Router,确保配置项符合官方要求。
  • 排查配置错误:检查是否有拼写错误(比如images.domains写成image.domains)、值类型错误(比如将数组配置写成字符串),或使用了当前Next.js版本不支持的配置项。
  • 本地验证:在本地执行yarn build,复现配置无效的错误,先在本地修复完成后再推送代码。

3. 解决next export与Image Optimization不兼容的构建失败

这个问题是因为Next.js默认的Image优化依赖服务器端能力,而next export生成的是纯静态文件,二者冲突,有两种解决思路:

方案一:禁用Image Optimization(适合纯静态导出场景)

在next.config.js中添加如下配置:

module.exports = {
  images: {
    unoptimized: true,
  },
}

注意:启用该配置后,Next.js的Image组件不再自动优化图片,你需要自行处理图片的尺寸、格式,或改用原生img标签。

方案二:改用SSR模式部署(保留Image Optimization)

放弃next export命令,让Amplify按Next.js SSR模式构建:

  • 修改Amplify的构建配置文件amplify.yml,确保构建命令仅保留yarn build,删除yarn export步骤:
    build:
      commands:
        - yarn install
        - yarn build
    
  • Amplify会自动识别Next.js应用并部署为SSR模式,原生支持Image Optimization功能。

通用排查步骤

  • 对齐Yarn版本:在Amplify控制台「Build image settings」中选择与本地一致的Node.js版本,可在amplify.yml中添加yarn --version命令查看构建环境的Yarn版本,避免版本差异导致的依赖安装问题。
  • 检查.gitignore:确保next.config.js未被忽略,已提交到代码仓库。
  • 查看完整日志:在Amplify构建历史中展开完整错误堆栈,定位更具体的错误位置(比如next.config.js的错误行号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:25