如何在Firebase Cloud Functions中安装GitHub私有npm包
解决方案
错误根源
你的配置存在三个核心问题,导致npm拉取私有仓库时没有携带授权令牌,触发认证失败:
- .npmrc 中私有包前缀对应的 registry 配置错误,registry 必须是npm包仓库地址,不能直接写git仓库地址
- package.json 中依赖直接填写git仓库地址,npm会跳过registry配置直接拉取git资源,不会使用你配置的PAT
- 若.npmrc未放在functions目录下,Firebase构建时不会读取该配置
修复步骤
步骤1:调整.npmrc配置
将.npmrc放在functions文件夹根目录(和package.json同层级),内容修改为:
@calugarul:registry=https://npm.pkg.github.com //npm.pkg.github.com/:_authToken=你的GitHub个人访问令牌(需勾选repo、read:packages权限) always-auth=true
若担心令牌泄露,可将令牌改为环境变量引用格式${GITHUB_TOKEN},部署前在本地终端先设置export GITHUB_TOKEN=你的令牌即可,Firebase构建时会自动完成变量替换。
步骤2:修改package.json依赖配置
将dependencies中的@calugarul/ccxt.pro配置改为你发布到GitHub Packages的对应版本号,示例:
"@calugarul/ccxt.pro": "^1.2.0"
如果你不想将包发布到GitHub Packages,需要直接拉取私有git仓库代码,可直接将依赖地址修改为带令牌的格式(不推荐,令牌会明文写在配置文件中):
"@calugarul/ccxt.pro": "git+https://你的令牌@github.com/kroitor/ccxt.pro.git"
步骤3:重新部署
执行部署命令验证修复效果:firebase deploy --only functions
内容的提问来源于stack exchange,提问作者Marian Petrisor
相关产品推荐
相关产品推荐

