如何使用Firebase Cloud功能.npmrc设置私有NPM模块?
我创建了一个用于我的Firebase功能和应用程序项目的私人打字npm模块。当我部署firebase函数时,对于每个基本上表示ERR! remote: Invalid username or password.
对于已阅读的内容,看来我需要创建一个.npmrc文件并将其放在/ functions目录中。 ()
但是,我无法在任何地方找到有关如何执行此操作的正确说明。根据发现,我已完成以下操作:
- 运行npm登录
- 运行npm令牌创建-只读
然后这给了我一个看起来像这样的令牌:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
。
然后我在我的函数目录中创建一个名为.npmrc的文件,并将//registry.npmjs/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
放在其中。
[另外,我看到错误消息正在尝试使用ssh安装我的私有存储库软件包,我没有设置ssh并使用https,因此,我将我的软件包文件更改为git+
,以便它使用HTTPS 。
但是,我仍然收到相同的错误消息。我想念什么?以上是我从许多Google搜索中搜集而来的内容。
回答如下:似乎您在尝试使其工作时进行了太多不同的更改,所以让我们逐步完成整个过程。
检查您的npm模块的package.json并将其发布:
- 删除“ private”属性或将其设置为
false
,因为该npm中的私有模块是永远不会发布的。这不是很明显,但这是事实。 - 下一步是对软件包应用受限访问。为此,请在property文件中添加
package.json
:
"publishConfig": { "access": "restricted" },
- 确保您用于发布
npm
私有软件包的supports帐户。 - 现在打开软件包根目录中的终端,输入
npm login
,然后登录npm。检查是否在package.json
中放入了正确的版本。 - 运行
npm publish
。该软件包应在几秒钟内发布。不用担心,由于publishConfig
属性,没有人可以访问它。
- 删除“ private”属性或将其设置为
现在是时候允许在您的项目中安装软件包了>
- 转到项目目录并打开
package.json
文件 - [在
dependencies
列表中检查您的软件包的名称和版本 - 打开浏览器,导航到https://npmjs,登录到您的帐户,导航到您的帐户的设置页面,然后打开
tokens
选项卡 - 创建新令牌并复制它
- 现在再次转到项目的目录,位于
package.json
文件所在的级别(这很重要!),然后在此处创建.npmrc
文件。 - 将先前复制的令牌粘贴到
.npmrc
文件中。您完成了!
- 转到项目目录并打开
使用远程CI / CD服务进行部署
- 最简单的方法是不将
.npmrc
添加到.gitignore
中。在这种情况下,文件将始终位于存储库中,因此npm install
将在克隆项目的任何计算机上顺利运行 - 如果出于某种原因不想在存储库中包含令牌字符串,可以将其移至CI / CD服务的环境变量,然后将.npmrc文件链接至该变量。例如,您已经生成了这样的令牌:
//registry.npmjs/:_authToken=xxxxxxxx-yyyy-zzzz-aaaa-cccccccc
。现在,您需要将xxxxxxxx-yyyy-zzzz-aaaa-cccccccc
部分放入env变量中,比如说NPM_TOKEN
。并将.npmrc文件更改为如下所示:
//registry.npmjs/:_authToken=${NPM_TOKEN}
我更喜欢在我的存储库中只有带令牌的.npmrc
文件。
因此,通过这些步骤,您应该能够安装受限制的程序包,而不会出现任何问题。祝你好运!
如何使用Firebase Cloud功能.npmrc设置私有NPM模块?
我创建了一个用于我的Firebase功能和应用程序项目的私人打字npm模块。当我部署firebase函数时,对于每个基本上表示ERR! remote: Invalid username or password.
对于已阅读的内容,看来我需要创建一个.npmrc文件并将其放在/ functions目录中。 ()
但是,我无法在任何地方找到有关如何执行此操作的正确说明。根据发现,我已完成以下操作:
- 运行npm登录
- 运行npm令牌创建-只读
然后这给了我一个看起来像这样的令牌:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
。
然后我在我的函数目录中创建一个名为.npmrc的文件,并将//registry.npmjs/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
放在其中。
[另外,我看到错误消息正在尝试使用ssh安装我的私有存储库软件包,我没有设置ssh并使用https,因此,我将我的软件包文件更改为git+
,以便它使用HTTPS 。
但是,我仍然收到相同的错误消息。我想念什么?以上是我从许多Google搜索中搜集而来的内容。
回答如下:似乎您在尝试使其工作时进行了太多不同的更改,所以让我们逐步完成整个过程。
检查您的npm模块的package.json并将其发布:
- 删除“ private”属性或将其设置为
false
,因为该npm中的私有模块是永远不会发布的。这不是很明显,但这是事实。 - 下一步是对软件包应用受限访问。为此,请在property文件中添加
package.json
:
"publishConfig": { "access": "restricted" },
- 确保您用于发布
npm
私有软件包的supports帐户。 - 现在打开软件包根目录中的终端,输入
npm login
,然后登录npm。检查是否在package.json
中放入了正确的版本。 - 运行
npm publish
。该软件包应在几秒钟内发布。不用担心,由于publishConfig
属性,没有人可以访问它。
- 删除“ private”属性或将其设置为
现在是时候允许在您的项目中安装软件包了>
- 转到项目目录并打开
package.json
文件 - [在
dependencies
列表中检查您的软件包的名称和版本 - 打开浏览器,导航到https://npmjs,登录到您的帐户,导航到您的帐户的设置页面,然后打开
tokens
选项卡 - 创建新令牌并复制它
- 现在再次转到项目的目录,位于
package.json
文件所在的级别(这很重要!),然后在此处创建.npmrc
文件。 - 将先前复制的令牌粘贴到
.npmrc
文件中。您完成了!
- 转到项目目录并打开
使用远程CI / CD服务进行部署
- 最简单的方法是不将
.npmrc
添加到.gitignore
中。在这种情况下,文件将始终位于存储库中,因此npm install
将在克隆项目的任何计算机上顺利运行 - 如果出于某种原因不想在存储库中包含令牌字符串,可以将其移至CI / CD服务的环境变量,然后将.npmrc文件链接至该变量。例如,您已经生成了这样的令牌:
//registry.npmjs/:_authToken=xxxxxxxx-yyyy-zzzz-aaaa-cccccccc
。现在,您需要将xxxxxxxx-yyyy-zzzz-aaaa-cccccccc
部分放入env变量中,比如说NPM_TOKEN
。并将.npmrc文件更改为如下所示:
//registry.npmjs/:_authToken=${NPM_TOKEN}
我更喜欢在我的存储库中只有带令牌的.npmrc
文件。
因此,通过这些步骤,您应该能够安装受限制的程序包,而不会出现任何问题。祝你好运!