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

TypeScript React项目本地构建正常,AWS CodeBuild构建失败求助

问题分析

报错中的_ending;是ES2022的类公共字段语法,Node.js 12及以下版本默认不支持该语法,而你使用的react-scripts@5.0.1要求Node.js版本至少为14.0.0——你之前尝试的10、12版本都低于这个要求,这是核心问题。另外CodeBuild的缓存可能残留了旧版本Node安装的依赖,导致即使更换版本也报错。

解决方案

1. 指定兼容的Node.js版本

修改buildspec.yml中的runtime-versions,明确指定Node.js 16.x或18.x(这两个LTS版本完全支持react-scripts 5.x和类字段语法),同时修正构建产物的路径:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 16.x  # 推荐使用16.x/18.x LTS版本
    commands:
      - npm install  # 无需全局安装typescript,项目依赖中已包含
  build:
    commands:
      - npm run build

artifacts:
  files:
    - build/**/*  # react-scripts build产物默认输出到build目录,这才是需要部署的静态文件
    - appspec.yml
    - scripts/**/*

cache:
  paths:
    - './node_modules/**/*'

注意:你之前的artifacts配置包含了src/**/*和public/**/*,这是项目源码而非构建后的可运行静态文件,部署到S3必须上传build目录的内容。

2. 清理CodeBuild缓存

旧缓存可能残留了不兼容的依赖包,导致报错无法消除:

  • 手动进入CodeBuild项目设置,找到缓存选项清空现有缓存
  • 或者在buildspec的install阶段添加清理命令:
phases:
  install:
    runtime-versions:
      nodejs: 16.x
    commands:
      - rm -rf node_modules package-lock.json  # 清理旧依赖和锁文件
      - npm install

3. 本地验证(可选)

在本地使用Node.js 16.x运行npm run build,确认构建流程正常,排除项目本身的语法问题。

补充说明
  • react-scripts@5.x官方要求Node.js >=14.0.0、npm >=5.6,必须使用符合要求的版本
  • 类公共字段语法在Node.js 12.x中需要手动开启--experimental-class-fields flag,但react-scripts的构建流程不会自动添加该配置,因此升级Node版本是最稳妥的解决方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:36:01