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

将GitHub仓库标签作为npm依赖时Firebase Cloud Functions部署报错

问题原因

该报错是Firebase Cloud Functions云端构建环境没有对应GitHub仓库的访问权限导致的:
你本地环境配置了GitHub SSH密钥,因此可以正常拉取代码;但部署时的云端构建节点默认没有SSH授权,拉取SSH协议的GitHub依赖时就会触发主机密钥验证失败的报错。

解决方案

你可以根据自己的场景选择以下任意一种方案解决:

  • 方案1:改用HTTPS格式的依赖地址(适用于公共GitHub仓库)
    直接修改package.json中的依赖配置,替换为HTTPS协议的 tar 包地址即可,无需额外配置密钥:
    "@instantish/martian": "https://github.com/Rakmo33/martian/archive/refs/tags/v2.3.0.tar.gz"
    
  • 方案2:嵌入GitHub个人访问令牌(适用于私有GitHub仓库)
    先在GitHub后台生成拥有仓库读取权限的个人访问令牌(PAT),再将PAT嵌入依赖地址中:
    "@instantish/martian": "https://<你的GitHub PAT>@github.com/Rakmo33/martian#v2.3.0"
    
    注意不要将包含明文PAT的package.json提交到公共代码仓库,避免密钥泄露。
  • 方案3:预打包依赖本地引用(通用无风险方案)
    提前将目标模块打包到你的functions项目目录内,部署时直接读取本地文件,无需云端拉取远程代码:
    1. 克隆martian仓库到本地,切换到v2.3.0标签,执行npm pack命令生成martian-2.3.0.tgz安装包
    2. 在你的functions目录下新建vendor文件夹,将生成的tgz包放入该文件夹
    3. 修改package.json依赖配置为本地路径:
    "@instantish/martian": "file:./vendor/martian-2.3.0.tgz"
    

修改配置后,先删除本地的node_modules、package-lock.json(或yarn.lock)文件,重新执行npm install验证依赖可以正常安装,再执行Firebase部署命令即可正常构建。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:04