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

如何解决GAE部署报错Error Response [9]:React应用Cloud Build部署失败

错误排查及解决方案

该报错根因为fsevents是仅适配macOS系统的原生依赖包,Cloud Build及GAE的运行环境均为Linux系统,本不需要安装该依赖。出现报错是由于依赖链中的watchpack-chokidar2尝试拉取该可选依赖,或本地生成的依赖锁文件锁定了跨平台的可选依赖规则导致,可按以下步骤解决:

  • 修改npm安装命令跳过可选依赖

    在cloudbuild.yaml的npm install步骤添加--no-optional参数,直接跳过所有可选依赖的安装,fsevents属于watchpack的可选依赖,跳过不会影响Linux环境下的构建运行。修改后的构建步骤参考:

    steps:
    - name: node
      entrypoint: npm
      args: ['install', '--no-optional']
    - name: node
      entrypoint: npm
      args: ['run','build']
    - name: 'gcr.io/cloud-builders/gcloud'
      args: ['app', 'deploy']
      timeout: 1200s
    timeout: 1200s
    
  • 新增.npmrc配置强制忽略fsevents

    若修改安装命令后仍报错,可在项目根目录新建.npmrc文件(已存在则直接编辑),添加如下配置强制npm忽略fsevents包的安装,修改后将.npmrc提交到代码仓库即可:

    fsevents=false
    
  • 清理跨平台生成的依赖锁文件

    若本地是macOS环境生成的package-lock.json或yarn.lock,会将fsevents的依赖信息锁定到文件中,导致Linux环境安装时尝试拉取对应包。可先删除本地的锁文件,由Cloud Build构建时自动生成适配Linux环境的依赖树,或在本地执行npm install --no-optional重新生成锁文件后再提交代码。

  • 统一构建与运行环境的Node版本

    当前app.yaml指定的runtime为nodejs14,需确认Cloud Build使用的node镜像版本与runtime版本一致,避免跨版本依赖解析差异,可将构建步骤的node镜像明确指定为对应大版本:
    将- name: node修改为- name: node:14,保证构建环境和线上运行环境的Node版本完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:24:02