您可以使用访问令牌来测试私有 npm 包与持续集成 (CI) 系统,或使用持续部署 (CD) 系统部署它们。

创建新的访问令牌

创建一个新的访问令牌,它将仅用于从 CI/CD 服务器访问 npm 包。

持续集成

当为持续集成环境生成访问令牌时,建议使用具有有限访问权限的细粒度访问令牌以提供更高的安全性。

如果您使用的是旧版令牌,则默认情况下,npm token create 将生成一个具有读写权限的令牌。建议创建只读令牌

npm token create --read-only

有关创建访问令牌(包括 CIDR 白名单令牌)的更多信息,请参阅“创建访问令牌”。

持续部署

由于持续部署环境通常涉及创建部署工件,因此您可能希望在网站上创建自动化令牌。这样,即使您的帐户启用了双因素身份验证,您也可以发布。

交互式工作流程

如果您的工作流程生成了一个包,但您在验证后手动发布它,那么您将需要创建一个具有读写权限的令牌,这些权限是通过标准令牌创建命令授予的

npm token create

CIDR 白名单

为了提高安全性,您可以使用 CIDR 白名单令牌,该令牌只能从特定 IP 地址范围使用。您可以将 CIDR 白名单与读写令牌或只读令牌一起使用

npm token create --cidr=[list]
npm token create --read-only --cidr=[list]

示例

npm token create --cidr=192.0.2.0/24

有关更多信息,请参阅“创建和查看身份验证令牌”。

在 CI/CD 服务器上将令牌设置为环境变量

将您的令牌设置为环境变量或 CI/CD 服务器中的秘密。

例如,在 GitHub Actions 中,您需要将您的令牌添加为秘密。然后,您可以使秘密对工作流程可用。

如果您将秘密命名为NPM_TOKEN,那么您将需要从该秘密创建一个名为NPM_TOKEN 的环境变量。

steps:
- run: |
npm install
- env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

有关更多详细信息,请参阅 CI/CD 服务器的文档。

创建并签入项目特定的 .npmrc 文件

使用包含您令牌变量的项目特定 .npmrc 文件,以安全地将您的 CI/CD 服务器与 npm 认证。

  1. 在项目的根目录中,创建一个自定义的 .npmrc 文件,内容如下

    //registry.npmjs.org/:_authToken=${NPM_TOKEN}

    注意:您正在指定 ${NPM_TOKEN} 的字面值。npm cli 将用 NPM_TOKEN 环境变量的内容替换此值。**不要**将令牌放在此文件中。

  2. 签入 .npmrc 文件。

保护您的令牌

您的令牌可能具有读取私有包、代表您发布新包或更改用户或包设置的权限。保护您的令牌。

不要将您的令牌添加到版本控制中或将其不安全地存储。将其存储在密码管理器、云提供商的安全存储或 CI/CD 提供商的安全存储中。

尽可能使用具有最小必要权限的细粒度访问令牌,并为您的令牌设置较短的过期日期。有关更多信息,请参阅“关于访问令牌”。