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

React部署AWS Amplify报错:构建目录不存在排查求助

排查AWS Amplify部署React应用时的build目录不存在问题

1. 确认package.json的build脚本配置

打开你的package.json,查看scripts字段里的build命令:

"scripts": {
  "build": "react-scripts build"
}
  • 必须确保build命令存在,且执行后会将产物输出到build目录(React项目默认是这个路径,如果你自定义了输出目录比如dist,那Amplify的artifact路径也要同步改成dist)。
  • 本地执行npm run build后,确认项目根目录(或对应的子目录)下确实生成了build文件夹。

2. 修正amplify.yml的构建流程

如果你的React项目在仓库的子目录(比如myapp),amplify.yml需要先切换到子目录再执行构建,示例配置如下:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - cd myapp
        - npm install
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: myapp/build
    files:
      - '**/*'
  cache:
    paths:
      - myapp/node_modules/**/*
  • 重点检查preBuild里的cd命令是否指向正确的项目目录,artifacts.baseDirectory必须和实际build产物的路径完全匹配(可以写成./myapp/build,但不要加多余的尾部斜杠)。
  • 如果项目在仓库根目录,直接去掉cd myapp命令,baseDirectory设为build即可。

3. 查看Amplify构建日志的完整输出

进入Amplify控制台的对应构建记录,查看Build阶段的详细日志:

  • 重点找npm run build的执行结果,如果build过程中出现报错(比如依赖缺失、语法错误、node版本不兼容),会直接导致build失败,自然不会生成build目录。很多时候用户只看到最后“目录不存在”的错误,忽略了前面的build失败原因。
  • 确认日志里是否有The build folder is ready to be deployed这类提示,这说明build成功,此时再核对产物路径是否和yml配置一致。

4. 统一本地与Amplify的Node.js版本

Node.js版本不一致是常见的build失败原因:

  • 在package.json里添加engines字段,指定项目兼容的node版本:
"engines": {
  "node": "16.x"
}
  • 进入Amplify控制台的构建设置页面,将Node.js版本修改为你指定的版本(比如16.x),确保和本地开发环境使用的版本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:25:28