AWS使用Node 12.x无法构建react-scripts问题咨询
问题结论
AWS 官方托管的应用构建服务(含 Amplify 托管、CodeBuild 标准运行时镜像)已经完成了旧版本Node运行时的下线滚动更新,目前默认构建环境不再内置Node 12及更低版本,这是构建任务无代码变更情况下突然失败的核心原因。
Node.js 12 官方早在2022年4月就已结束生命周期,停止所有安全补丁和维护支持,AWS侧的下线节奏本身晚于社区EOL时间。

修复方法
你可以根据自己使用的构建服务选择对应方案调整Node版本,恢复构建:
- 使用AWS Amplify构建的场景:在Amplify控制台的构建设置里添加环境变量
NODE_VERSION,值填你需要的Node大版本号(推荐填18或20这类仍在支持期的LTS版本),也可以在项目根目录的.nvmrc文件里写入目标版本号,Amplify构建时会自动读取该文件配置对应Node版本。 - 使用AWS CodeBuild构建的场景:直接将构建项目使用的标准镜像替换为内置Node 16+版本的官方镜像版本,也可以在
buildspec.yml的安装阶段通过nvm安装指定版本的Node运行时。 - 排查阶段可以在构建脚本最开头加一行
node -v,打印当前环境实际运行的Node版本,快速确认版本匹配情况。
不建议通过自定义旧镜像的方式强行沿用Node 12及更低版本,这类版本没有安全更新,存在明确的供应链安全风险,最好同步完成项目依赖的版本适配,升级到官方维护的Node版本。
内容的提问来源于stack exchange,提问作者mjwebson
相关产品推荐
相关产品推荐

