目录
在 CI/CD 工作流程中使用私有包
目录
您可以使用访问令牌来测试私有 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 认证。
-
在项目的根目录中,创建一个自定义的
.npmrc
文件,内容如下//registry.npmjs.org/:_authToken=${NPM_TOKEN}
注意:您正在指定
${NPM_TOKEN}
的字面值。npm cli 将用NPM_TOKEN
环境变量的内容替换此值。**不要**将令牌放在此文件中。 -
签入
.npmrc
文件。
保护您的令牌
您的令牌可能具有读取私有包、代表您发布新包或更改用户或包设置的权限。保护您的令牌。
不要将您的令牌添加到版本控制中或将其不安全地存储。将其存储在密码管理器、云提供商的安全存储或 CI/CD 提供商的安全存储中。
尽可能使用具有最小必要权限的细粒度访问令牌,并为您的令牌设置较短的过期日期。有关更多信息,请参阅“关于访问令牌”。