将Amplify项目从React迁移至Next.js时遇target属性报错
解决Amplify部署Next.js v13时的"target"属性错误问题
核心问题定位
你遇到的错误本质是Amplify控制台的Framework配置与当前项目类型不匹配——项目已经迁移到Next.js v13,但控制台仍用React - Amplify的构建模板,这套模板会自动注入旧版Next.js需要的target属性,和v13的新规则冲突。
解决方案步骤
1. 切换Amplify控制台的Framework配置
- 打开Amplify控制台进入你的项目
- 找到构建设置页面
- 在前端框架和设置区域,把Framework从「React - Amplify」改成「Next.js - SSR」
- 保存配置后重新触发构建
2. 验证build.settings配置(按需调整)
当前的build.settings基本符合要求,若切换Framework后仍有问题,可以给构建命令添加环境变量,强制使用Next.js现代构建逻辑:
version: 1 frontend: phases: preBuild: commands: - npm install build: commands: - export NEXT_TELEMETRY_DISABLED=1 - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/*
3. 清理构建缓存
旧缓存可能残留了之前React项目的配置,导致冲突:
- 进入Amplify控制台的构建历史,选最近一次失败的构建
- 点击「重新构建」,勾选「清理缓存」选项
额外检查点
- 再次确认
next.config.js里确实没有target属性,也可以临时删除node_modules重新安装后本地构建,排查是否有第三方依赖自动添加该属性 - 确保本地Node.js版本和Amplify构建环境的版本一致(可以在preBuild阶段加
node -v命令,对比本地和构建环境的版本)
内容的提问来源于stack exchange,提问作者Milton761
相关产品推荐
相关产品推荐

