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

函数部署失败报错:yarn: not found 问题排查求助

Cloud Functions部署全量失败:yarn未找到+自动执行build脚本的原因及解决

问题现象

所有开发/生产环境的Cloud Functions部署失效,无论是手动部署单个函数还是通过Cloud Build触发器批量部署,均触发以下错误:

Build failed: > functions@0.1.0 build
> yarn build-deps && tsc

sh: 1: yarn: not found; Error ID: 1a2262f3

其中functions@0.1.0是代码库中的包,yarn build-deps && tsc是package.json中定义的build脚本。错误发生在云端部署的functions.v1.OperationMetadataV1 UPDATE_FUNCTION环节,而非本地或Cloud Build构建阶段。

为什么部署会自动执行build脚本?

Cloud Functions的云端部署流程默认会触发构建操作,触发条件包括:

  • 代码使用TypeScript这类需要编译的语言,云端需要将源码转译为运行时可执行的代码
  • package.json中存在build脚本时,云端会自动调用该脚本完成构建
  • 未在部署命令中添加--no-build参数关闭云端构建(默认开启)

解决步骤

1. 替换build脚本中的yarn为npm

Cloud Functions的云端构建环境默认仅预装npm,未包含yarn,因此直接调用yarn会提示未找到。修改package.json的build脚本:

{
  "scripts": {
    "build": "npm run build-deps && tsc"
  }
}

同时确保build-deps脚本中的依赖安装命令也使用npm(比如npm install而非yarn install)。

2. 验证部署流程

  • 先尝试部署一个最简测试函数,确认修改后的脚本可以正常执行
  • 如果是通过Cloud Build触发器部署,检查触发器配置中是否有额外的构建命令,确保统一使用npm

3. 清理异常缓存(针对突发全量失效)

之前高频调用时的部署失败可能导致云端构建缓存或函数配置异常,可通过以下操作恢复:

  • 在Cloud Console中找到对应函数,删除其关联的临时构建资源(如GCS中的构建缓存桶文件)
  • 重新触发部署,让云端重新生成干净的构建环境

额外排查点

  • 关于同期GCS存储量骤增:检查是否是云端构建产生的大量临时日志或构建产物导致,清理后可释放存储,但不影响部署问题的解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:12:25