我正在尝试将微服务部署到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上部署也可以。
我刚遇到这个问题,所以我将共享适用于节点v8和v10 Cloud Functions的修复程序。
使用C0从私人Github软件包注册表中安装软件包必须具备以下条件:
.npmrc
需要位于与.npmrc
文件相同级别的功能文件夹中package.json
@ronburgundy:registry=https://npm.pkg.github.com/ronburgundy
一样>>//npm.pkg.github.com/:_authToken=ronburgundypersonalaccesstoken
,您将需要确保将文件转换为包括个人访问令牌prior因此,原始示例将如下所示:
.npmrc
虽然Github的文档似乎建议您将所有作用域和无作用域的软件包安装重定向到其注册表,但是Google Cloud Functions似乎不允许我们将所有软件包安装重定向到私有注册表,只能将我们根据范围配置的软件包重定向到私有注册表。