AWS Amplify部署React应用构建失败求助
AWS Amplify部署React应用构建失败问题排查与解决
问题描述
按照AWS官方教程部署React应用,步骤为:使用npx create-react-app创建应用、创建GitHub仓库、关联并授权AWS Amplify控制台后部署。但在「将应用部署到AWS Amplify」环节持续构建失败,日志显示package-lock.json缺失typescript@4.9.5、ajv@6.12.6等依赖包。
已尝试过以下操作但问题仍未解决:
- 删除
package-lock.json并本地执行npm install - 执行
npm audit fix --force - 多次更新
package.json和package-lock.json到仓库 - 重新执行整个部署流程多次
构建失败日志如下:
## Checking for associated backend environment... ## No backend environment association found, continuing... npm ERR! Missing: typescript@4.9.5 from lock file npm ERR! Missing: ajv@6.12.6 from lock file npm 2023-03-04T05:29:24.352Z [WARNING]: ERR! Missing: ajv-keywords@3.5.2 from lock file npm ERR! Missing: json-schema-traverse@0.4.1 from lock file npm ERR! Missing: ajv@6.12.6 from lock file npm ERR! Missing: ajv-keywords@3.5.2 from lock file npm ERR! Missing: json-schema-traverse@0.4.1 from lock file npm ERR! Missing: json-schema-traverse@0.4.1 from lock file npm ERR! Missing: ajv@6.12.6 from lock file npm ERR! Missing: ajv-keywords@3.5.2 from lock file npm ERR! Missing: json-schema-traverse@0.4.1 from lock file npm ERR! Missing: json-schema-traverse@0.4.1 from lock file npm ERR! npm ERR! Clean install a project npm 2023-03-04T05:29:24.352Z [WARNING]: ERR! npm ERR! Usage: npm ERR! npm ci npm ERR! npm ERR! Options: npm ERR! [-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle] npm ERR! [-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling] npm ERR! [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] npm ERR! [--strict-peer-deps] [--no-package-lock] [--foreground-scripts] npm ERR! [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] npm ERR! [-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]] npm ERR! [-ws|--workspaces] [--include-workspace-root] [--install-links] npm 2023-03-04T05:29:24.353Z [WARNING]: ERR! npm ERR! aliases: clean-install, ic, install-clean, isntall-clean npm ERR! npm ERR! Run "npm help ci" for more info 2023-03-04T05:29:24.354Z [WARNING]: npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2023-03-04T05_29_21_673Z-debug-0.log 2023-03-04T05:29:24.359Z [ERROR]: !!! Build failed 2023-03-04T05:29:24.359Z [ERROR]: !!! Non-Zero Exit Code detected 2023-03-04T05:29:24.359Z [INFO]: # Starting environment caching... 2023-03-04T05:29:24.360Z [INFO]: # Environment caching completed Terminating logging...
解决方案
彻底清理本地依赖并重新生成lock文件
- 删除本地依赖目录和lock文件:
rm -rf node_modules package-lock.json - 清空npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
注意:不要使用npm audit fix --force,该命令会强制修改依赖版本,导致package-lock.json与实际依赖树不匹配,引发部署时的依赖缺失问题。
- 删除本地依赖目录和lock文件:
调整Amplify构建命令
在AWS Amplify控制台的「构建设置」中,将构建命令从npm ci改为npm install。npm ci会严格按照lock文件安装依赖,若lock文件存在版本不一致问题就会失败;而npm install会自动修复lock文件中的依赖缺失问题。对齐Node.js版本
确认本地开发使用的Node.js版本与Amplify构建环境的Node版本一致。Amplify默认使用的Node版本可在构建日志中查看,本地切换到对应版本后重新生成package-lock.json再提交到仓库。检查Git提交配置
确保package-lock.json未被.gitignore文件忽略,提交代码时确认该文件已被正确推送到仓库。
内容的提问来源于stack exchange,提问作者Asaf
相关产品推荐
相关产品推荐

