Amplify部署Next.js项目遇Module not found: '../aws-exports'错误求助
解决Amplify Hosting构建Next.js时找不到aws-exports的问题
问题分析
报错显示_app.js无法解析../aws-exports,核心原因是Amplify构建流程中前端构建先于后端生成aws-exports.js文件,或是配置文件的结构、命令顺序错误导致文件未出现在预期位置。
解决方案
1. 修正amplify.yml的构建顺序与结构
原配置中backend的artifacts配置错误(.next是前端产物目录),且未确保后端先完成aws-exports.js的生成。调整后的配置如下:
version: 1 backend: phases: preBuild: commands: - npm install - amplify push --y # 强制生成/更新aws-exports.js frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: .next files: - '**/*'
- 将
backend阶段放在frontend之前,确保后端先完成资源部署并生成aws-exports.js - 移除
backend下的artifacts配置,将产物配置统一放在根级别(对应前端构建产物.next) - 添加
amplify push --y命令,确保构建时自动生成最新的aws-exports.js
2. 拉取正确的后端环境配置
如果项目是通过Amplify控制台关联的后端环境,可在backend的preBuild阶段添加拉取命令替代push:
backend: phases: preBuild: commands: - npm install - amplify pull --appId YOUR_AMPLIFY_APP_ID --envName YOUR_ENV_NAME --y
替换YOUR_AMPLIFY_APP_ID和YOUR_ENV_NAME为控制台中的对应值,确保构建时获取到对应环境的aws-exports.js。
3. 构建阶段手动复制文件到预期路径
若上述方法无效,可在前端构建前手动复制文件到对应路径,修改frontend的preBuild命令:
frontend: phases: preBuild: commands: - npm install - cp src/aws-exports.js src/pages/ # 复制到pages目录适配import路径 build: commands: - npm run build
验证要点
- 本地执行
amplify push后,确认src/aws-exports.js存在 - 查看Amplify控制台的构建日志,确认
backend阶段命令是否成功执行、是否生成了aws-exports.js
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

