在Google Cloud Functions中安装私有GitHub npm私有软件包不起作用

问题描述 投票:1回答:1

我正在尝试将微服务部署到GCF,该服务依赖于私有GitHub托管的软件包。为了获得对该程序包的访问权限,我按照here的说明向该函数添加了一个.npmrc文件,该文件如下所示:

registry=https://npm.pkg.github.com/OWNER
//npm.pkg.github.com/:_authToken=PERSONAL-ACCESS-TOKEN

还尝试在Cloud Function中使用NPM_TOKEN env变量

NPM_TOKEN=PERSONAL-ACCESS-TOKEN

均导致以下错误:

OperationError:代码= 3,消息=构建失败:{错误:{canonicalCode:“ INVALID_ARGUMENT”}}]

npm ERR!找不到404:@ packagescope / packagename

本地安装正常,在Zeit Now上部署也可以。

node.js github npm google-cloud-functions
1个回答
0
投票

我刚遇到这个问题,所以我将共享适用于节点v8和v10 Cloud Functions的修复程序。

使用C0从私人Github软件包注册表中安装软件包必须具备以下条件:

  1. [.npmrc需要位于与.npmrc文件相同级别的功能文件夹中
  2. 您的帐户/组织范围的注册表项是必需的,包括类似的URL,假设Anchorman使用Github:package.json
  3. 需要一个Github个人访问令牌进行身份验证,就像@ronburgundy:registry=https://npm.pkg.github.com/ronburgundy一样>>
  4. 假设您遵循最佳实践,并且不使用秘密提交//npm.pkg.github.com/:_authToken=ronburgundypersonalaccesstoken,您将需要确保将文件转换为包括个人访问令牌prior
  5. 以便通过firebase cli进行部署,因为没有其他方法可以在运行时注入值。

    因此,原始示例将如下所示:

.npmrc

虽然Github的文档似乎建议您将所有作用域和无作用域的软件包安装重定向到其注册表,但是Google Cloud Functions似乎不允许我们将所有软件包安装重定向到私有注册表,只能将我们根据范围配置的软件包重定向到私有注册表。

© www.soinside.com 2019 - 2024. All rights reserved.