管理 Node.js 软件包

Artifact Registry 支持您通过 npm 管理的 Node.js 软件包。

概览

如需熟悉 Artifact Registry 中的 Node.js 软件包,您可以试用quickstart

当您准备好了解详情时,请阅读以下信息:

  1. 如果您刚开始接触 npm,请阅读以下概念:
  2. 为您的软件包创建 Node.js 软件包代码库
  3. 向将与代码库关联的帐号授予权限。与 Artifact Registry 进行常见集成的服务帐号对同一项目中的代码库拥有默认权限
  4. 配置工具:
  5. 了解如何管理软件包

使用范围

npm 范围是用于对软件包进行分组的标签。处理多个 npm 注册表时需要指定范围,其中包括:

  • 在不同注册表中发布和安装软件包,无需从一个注册表切换到另一个注册表。例如,您的构建可能包含来自公共 npm 注册表和 Artifact Registry 代码库的软件包。
  • 将相同的软件包发布到各个 Google Cloud 项目的多个 Artifact Registry 代码库以及其他 npm 注册表,而不会出现软件包名称冲突的情况。

我们建议您始终为代码库设置范围。如果您在发布或安装软件包时未指定范围,npm 会使用已配置的默认注册表,例如公共 npm 注册表。

您可以在 .npmrc 配置文件中为每个 Artifact Registry 代码库设置范围。在各个代码库中进行身份验证时适用相同的凭据。

以下示例展示不同项目中的两个 Artifact Registry 代码库的配置。

  • @blue 范围适用于项目 blue-project 中的代码库。
  • @green 范围适用于项目 green-project 中的代码库。
@blue:registry=https://us-central1-npm.pkg.dev/blue-project/blue-npm-repo/
//us-central1-npm.pkg.dev/blue-project/blue-npm-repo/:always-auth=true

@green:registry=https://us-central1-npm.pkg.dev/green-project/green-npm-repo/
//us-central1-npm.pkg.dev/green-project/green-npm-repo/:_authToken=""
//us-central1-npm.pkg.dev/green-project/green-npm-repo/:always-auth=true

向 Artifact Registry 进行身份验证后,您可以使用适当的范围将软件包上传到特定代码库。例如,以下命令会将软件包上传到项目 blue-project 中的 blue-npm-repo

npm publish @blue/blue-npm-repo

如需详细了解范围,请参阅 npm 文档

配置 npm

用于身份验证的设置存储在 .npmrc 配置文件中。您可以在项目、用户或全局级别配置 .npmrc 文件。

使用 Artifact Registry 配置身份验证时,您需要定义要连接的代码库以及用于身份验证的凭据。

Artifact Registry 代码库

我们建议您在每个项目的配置文件中设置代码库列表。此文件通常与 npm 项目中的 package.json 文件位于同一目录中。默认情况下,Artifact Registry 凭据帮助程序会检查此 .npmrc 文件以查找您的代码库。

如果您不想公开源代码控制系统中的代码库路径,可以执行以下操作:

  • .npmrc 文件名添加到源代码控件的要忽略的文件列表。
  • 请改为将代码库列表存储在每位用户 confg 文件中。每位用户的 .npmrc 文件位于您的用户主目录中,或使用 npm --userconfig 参数或 $NPM_CONFIG_USERCONFIG 环境变量进行设置。每位用户配置文件中的设置会应用于您的所有项目,除非您在项目级别替换这些设置。
Artifact Registry 凭据

将 Artifact Registry 的凭据存储在每位用户的配置文件中,以免其他用户访问这些凭据。此文件位于您的用户主目录中,或使用 npm --userconfig 参数或 $NPM_CONFIG_USERCONFIG 环境变量进行设置。

Artifact Registry 凭据帮助程序存储在公共 npm 注册表中,无需进行身份验证即可安装。

您应保留 .npmrc 文件中配置的所有现有的默认注册表。默认值通常设置为 https://registry.npmjs.org/ 的公共 npm 注册表。

如需查看当前默认的注册表值,请运行以下命令:

npm get registry

如需详细了解 npm 配置文件,请参阅 npm 配置文件文档。