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

2024-04-25

我正在尝试将微服务部署到 GCF,它依赖于私有 GitHub 托管的包。为了访问该包,我向该函数添加了一个 .npmrc 文件,如下所述here https://cloud.google.com/functions/docs/writing/specifying-dependencies-nodejs#using_private_modules,该文件如下所示:

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

还尝试在云函数中使用 NPM_TOKEN 环境变量

NPM_TOKEN=PERSONAL-ACCESS-TOKEN

两者都会导致以下错误:

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

npm 错误! 404 未找到:@packagescope/packagename

本地安装效果很好,在 Zeit Now 上部署也是如此。


我刚刚遇到了这个问题,因此我分享了适用于节点 v8 和 v10 Cloud Functions 的修复程序。

使用时需要满足以下条件.npmrc从私有 Github 包注册表安装包:

  1. The .npmrc需要位于与函数同级的文件夹中package.json file
  2. 需要您的帐户/组织范围的注册表项,包括像这样的 url,假设 Anchorman 使用 Github:@ronburgundy:registry=https://npm.pkg.github.com/ronburgundy
  3. 身份验证需要 Github 个人访问令牌,如下所示//npm.pkg.github.com/:_authToken=ronburgundypersonalaccesstoken
  4. 假设您遵循最佳实践并且不承诺.npmrc对于秘密,您需要确保文件被转换为包含个人访问令牌prior通过 firebase cli 进行部署,因为没有其他方法可以在运行时注入该值。

因此,如果原始示例如下所示,则可以正常工作:

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

虽然 Github 的文档似乎建议您应该将所有范围内和未范围内的软件包安装重定向到其注册表,但 Google Cloud Functions 似乎不允许我们将所有软件包安装重定向到私有注册表,仅允许我们根据范围配置的软件包安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google Cloud Functions 中安装私有 GitHub npm 包不起作用 的相关文章

  • 如何在Azure上运行nodejs、express js项目的启动命令?

    我在用Azure 开发运营对于我的应用程序 我不确定如何为该项目设置启动命令 如果我将它添加到创建的管道中的任务中 它会给出一个错误 也许是因为该过程永远不会结束 实际上 我可以运行 npm install 并创建工件 但我需要应用程序启动
  • nodejs“npm 错误!代码 SELF_SIGNED_CERT_IN_CHAIN”

    我是 Nodejs 和 npm 的新手 我正在尝试安装 log4js 这是安装命令 npm install log4js 我从 Windows 命令行运行此命令 在标记旋转一段时间后 出现以下错误 npm ERR Windows NT 6
  • 使用 TypeScript 中的类型导入节点和 Express

    我正在尝试在 Visual Studio Code 中设置 TypeScript Express node 应用程序 如下所示微软指南 https code visualstudio com docs runtimes nodejs typ
  • 更改用户名 Github “您必须验证您的电子邮件地址” git Push 上出现 403 错误

    我最近在 github 上更改了我的用户名 以便所有内容都重定向到我用户名上的新 URL 我通过命令行收到此错误git push 您必须验证您的电子邮件地址 致命 请求 URL 返回错误 403 但是 github 不允许我在帐户 gt 设
  • 在 npm 中安装 js beautify 时`没有这样的文件或目录`

    当我使用时出现此错误npm g install js beautify npm ERR path home developer software nodejs lib node modules js beautify js bin css
  • 如何刷新nodejs child_process stdin.write

    我需要在服务器端为客户端运行一个 C 程序 这个程序可以是交互式的 我正在使用 Node js child process 类 但我在这里看到一个问题 由于我需要保持程序交互 因此客户端和 Node js 服务器之间会来回交换消息 1 程序
  • 使用 bitcoinjs-lib 发送比特币

    我正在关注 bitcoinjs 的教程https medium com orweinberger how to create a raw transaction using bitcoinjs lib 1347a502a3a wkf9g2l
  • 从 Git 中的分支父级中提取更改

    如何从 Git 中的分支的父级中提取更改 特别是在 github 配置的项目中 例如 假设我分叉了http github com originaluser originalproject http github com originalus
  • Webpack 不包括 ProvidePlugins

    我正在开发一个小型试用 Web 应用程序 它使用 vue webpack 模板 https github com vuejs templates webpack https github com vuejs templates webpac
  • 在客户端将大文件(> 2GB)压缩为 ZIP

    我使用构建上传工具node js and socket io 因为他们通常会上传令人难以置信的巨大文件 而普通的上传表单将无法工作 问题是他们想在发送之前将文件压缩成zip 以提高传输效率 我一直在研究压缩方法 例如JSZip http s
  • 如何防止Firebase云功能“冲突”?

    我有一组具有基于时间的派生属性的对象 我有一个 Firebase 云函数 它正在侦听创建和写入以计算属性 并且运行良好 我还添加了一个通过 HTTP 触发的函数 例如 cron 在周日清晨重新计算属性 该属性每周都会更改 这工作正常 但每当
  • Mongoose Date.now 时间不准确

    在过去的两个小时里 我一直在抓狂 起初我以为 Moment js 是没有返回正确时间的罪魁祸首 但其实是 mongoose Date now 做了一些邪恶的事情 这是代码 const moment require moment const
  • 定期递归调用函数

    所以我想知道定期递归调用函数的更好方法 就堆栈增长和性能而言 是什么 例如 假设我想每 200 毫秒读取一次文件内容 我有以下两种方法 想知道它们是否有什么不同 方法 1 使用普通的 ols setTimeout 而不使用 process
  • 在 npm 脚本中匹配多个文件扩展名

    我有一个 npm 脚本 我想在其中匹配两者ts and tsx文件扩展名 如下所示 test mocha app test spec ts tsx 但是 上面的语法不起作用 执行此操作的正确语法是什么 你的模式是正确的 你的问题是你的 sh
  • 如何将node.js管道传输到redis?

    我有很多数据要插入 SET INCR 到redis DB 所以我正在寻找pipeline http redis io topics pipelining 质量插入 http redis io topics mass insert通过node
  • 将新文件添加到 Cloud Storage 时触发 Dataflow 作业

    我想在将新文件添加到存储桶时触发数据流作业 以便处理新数据并将其添加到 BigQuery 表中 我看到云函数可以被触发 https cloud google com functions calling google cloud storag
  • 如何修复 GitHub 拉取请求中被 git rebase 破坏的提交顺序?

    当我编写代码时 我会将其分解为小的逻辑更改 以便轻松快速地进行审查 为此 我使用git rebase i 交互式 压缩 删除和更改提交的顺序 我注意到这有时会导致 GitHub 拉取请求的提交顺序不同 尽管该顺序保留在远程分支上 例如 co
  • 在打字稿中读取和写入文本文件

    我应该如何从 Node js 中的 TypeScript 读取和写入文本文件 我不确定是否会在 node js 中读 写沙箱文件 如果没有 我相信应该有一种访问文件系统的方法 相信应该有一种访问文件系统的方法 Include node d
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的
  • GitHub API - 语言列表

    GitHub API 中是否有一个端点可以为我提供 GitHub 上所有语言的列表 我正在寻找与 github com 网站上 趋势 部分中的语言下拉列表类似的结果 不是直接来自 GitHub API The OP敏捷王牌 https st

随机推荐