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

在cloudbuild.yaml中执行npm命令部署React应用至GCS时遇npm未找到问题

问题解决:Cloud Build执行npm命令提示"npm: not found"及部署配置修正

核心结论

完全可以在cloudbuild.yaml中运行npm install和npm run build命令,你遇到的错误是因为使用的bash镜像未预装Node.js环境,导致找不到npm命令。

修正后的cloudbuild.yaml配置

steps:
  # 使用预装Node.js的官方镜像执行依赖安装与构建
  - name: node:20
    script: |
      npm install --force
  - name: node:20
    script: |
      npm run build
  # 用Cloud SDK镜像上传构建产物到GCS存储桶
  - name: gcr.io/google.com/cloudsdktool/cloud-sdk
    entrypoint: gcloud
    args:
      - "storage"
      - "cp"
      - "/workspace/dist/*"
      - "gs://your-bucket-name" # 替换为你的实际存储桶名称
timeout: 1200s
options:
  logging: CLOUD_LOGGING_ONLY

关键修正点说明

  • 镜像替换:将bash镜像换成node:20(或匹配你项目Node版本的镜像,如node:18),这类镜像默认包含Node.js和npm,可直接执行相关命令。
  • 路径修正:Cloud Build会自动把你的代码拉取到容器的/workspace目录,构建生成的dist目录路径为/workspace/dist,而非根目录的/dist。
  • 语法修正:原配置中的引号转义(\")属于冗余写法,直接使用标准YAML语法即可。

可选优化:合并步骤减少构建时间

如果想简化步骤,可将依赖安装与构建合并为一个步骤:

steps:
  - name: node:20
    script: |
      npm install --force
      npm run build
  - name: gcr.io/google.com/cloudsdktool/cloud-sdk
    entrypoint: gcloud
    args:
      - "storage"
      - "cp"
      - "/workspace/dist/*"
      - "gs://your-bucket-name"
timeout: 1200s
options:
  logging: CLOUD_LOGGING_ONLY

内容的提问来源于stack exchange,提问作者Elmer A. Chacon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:50:28