如何使用 Firebase Cloud Functions .npmrc 设置私有 NPM 模块?

2024-01-10

我创建了一个私有类型 npm 模块,用于我的 firebase 函数和应用程序项目。当我去部署 firebase 函数时,每个函数都会出现一个大错误,基本上说ERR! remote: Invalid username or password.

根据我所读到的内容,我似乎需要创建一个 .npmrc 文件并将其放在 /functions 目录中。 (https://cloud.google.com/functions/docs/writing/specifying-dependency-nodejs#using_private_modules https://cloud.google.com/functions/docs/writing/specifying-dependencies-nodejs#using_private_modules)

然而,我无法在任何地方找到有关如何执行此操作的正确说明。根据我的发现,我做了以下工作:

  • 运行 npm 登录
  • 运行 npm token create --read-only

然后这给了我一个如下所示的令牌:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.

然后,我在函数目录中创建一个名为 .npmrc 的文件,并将//registry.npmjs.org/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX in it.

另外,我看到错误消息试图使用 ssh 来安装我的私有仓库包,我还没有设置 ssh 并使用 https 代替,因此我将包文件更改为git+https://github.com/accounts-name/repo#commit-num以便它使用 HTTPS。

但是,我仍然收到相同的错误消息。我缺少什么?以上是我通过大量谷歌搜索整理出来的。


看来您在尝试使其发挥作用时做了太多不同的更改,因此让我们逐步完成整个过程。

  1. 检查 npm 模块的 package.json 并发布它:

    • 删除“私有”属性或将其设置为false因为 npm 中的私有模块永远不会被发布。这并不明显,但确实如此。
    • 下一步是对包应用限制访问。为此,请添加这样的property https://docs.npmjs.com/files/package.json#publishconfig in the package.json file:
    "publishConfig": {
        "access": "restricted"
    },
    
    • 确保npm您用于发布的帐户supports https://www.npmjs.com/products私人套餐。
    • 现在打开包根目录中的终端,输入npm login然后登录 npm。检查您是否将正确的版本放入package.json.
    • Run npm publish。该包应该会在几秒钟内发布。不用担心,感谢publishConfig任何人都无法访问它的财产。
  2. 现在是时候允许在您的项目中安装包了

    • 进入项目目录并打开package.json file
    • 检查您的包的名称和版本是否在dependencies list
    • 打开浏览器,导航至https://npmjs.com https://npmjs.com,登录您的帐户,导航至您帐户的设置页面并打开tokens tab
    • 创建新令牌并复制它
    • 现在再次转到您的项目目录,位于同一级别package.json文件位于(这很重要!)并创建.npmrc文件在那里。
    • 将这样的字符串放入.npmrc file:
    //registry.npmjs.org/:_authToken=TOKEN_HERE
    

    你完成了!

  3. 使用远程 CI/CD 服务进行部署

    • 最简单的方法是不添加.npmrc into .gitignore。在这种情况下,该文件将始终位于存储库中,因此npm install将在克隆项目的任何机器上顺利运行
    • 如果您不想在存储库中包含令牌字符串,可以将其移动到 CI/CD 服务的环境变量中,然后将 .npmrc 文件链接到该变量。例如,您可以将生成的令牌放入NPM_TOKENenv 变量(只是来自 npmjs 的令牌,而不是来自 .npmrc 的整个字符串!) 然后更改.npmrc按以下方式归档://registry.npmjs.org/:_authToken=${NPM_TOKEN}.

因此,通过这些步骤,您应该能够毫无问题地安装受限软件包。祝你好运!

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

如何使用 Firebase Cloud Functions .npmrc 设置私有 NPM 模块? 的相关文章

随机推荐