在 Artifact Registry 中存储 Node.js 软件包
本快速入门介绍如何设置私有 Artifact Registry Node.js 软件包代码库并向其上传软件包。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init - 如果您要从 Windows 连接到 Node.js 软件包代码库,请安装 PowerShell。
所需的角色
如需获得创建和管理 Artifact Registry Node.js 软件包代码库所需的权限,请让您的管理员为您授予项目的 Artifact Registry Administrator (roles/artifactregistry.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
启动 Cloud Shell
在本快速入门中,您将使用 Cloud Shell,这是一个用于管理Google Cloud上托管资源的 Shell 环境。
Cloud Shell 预安装有 Google Cloud CLI。gcloud CLI 为 Google Cloud提供了主要命令行界面。
启动 Cloud Shell:
前往 Google Cloud 控制台。
在 Google Cloud 控制台工具栏上,点击激活 Cloud Shell:

控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。
创建 Node.js 软件包代码库
为 Node.js 工件创建代码库。
创建代码库。
控制台
在 Google Cloud 控制台中打开代码库页面。
点击创建代码库。
指定
quickstart-nodejs-repo作为该代码库的名称。选择 npm 作为格式,选择标准作为模式。
在位置类型下,选择区域,然后选择位置
us-central1。点击创建。
该代码库会被添加到代码库列表中
gcloud
运行以下命令,在位置
us-central1中创建一个名为quickstart-nodejs-repo且带有说明“Node.js repository”的新 Node.js 软件包代码库。gcloud artifacts repositories create quickstart-nodejs-repo --repository-format=npm \ --location=us-central1 --description="Node.js package repository"运行以下命令确认已创建仓库。
gcloud artifacts repositories list
如需详细了解 Artifact Registry 命令,请运行
gcloud artifacts命令。为了简化
gcloud命令,请将默认代码库设置为quickstart-nodejs-repo,并将默认位置设置为us-central1。设置以上值之后,您无需在需要代码库或位置的gcloud命令中指定这些值。如需设置代码库,请运行以下命令:
gcloud config set artifacts/repository quickstart-nodejs-repo如需设置位置,请运行以下命令:
gcloud config set artifacts/location us-central1如需详细了解这些命令,请参阅 gcloud config set 文档。
配置 npm
如需上传和下载软件包,您必须配置 npm 项目,使其能够通过设置向您创建的代码库进行身份验证。在本快速入门中,您将上传一个软件包,然后将其作为依赖项安装在第二个软件包中。
下载 emoji-regex 软件包,该软件包提供了一个正则表达式,用于匹配所有表情符号和序列。
npm pack emoji-regex该命令会下载软件包的归档文件。
将归档文件解压缩到
emoji-regex目录中。以下命令适用于emoji-regex版本 10.1.0 的归档:mkdir emoji-regex && tar xvf emoji-regex-10.1.0.tgz -C emoji-regex --strip-components 1创建第二个 npm 软件包,您将使用该软件包从 Artifact Registry 安装
emoji-regex软件包。对于此软件包,请使用npm init命令创建基本软件包。mkdir npm-package2 cd npm-package2 npm init -y当系统提示时,接受默认值。
将
emoji-regex和npm-package2项目都配置为通过您创建的 Artifact Registry 制品库进行身份验证。运行以下命令。该命令会返回要添加到 npm 配置文件的配置设置。
gcloud artifacts print-settings npm --scope=@quickstartquickstart范围与您的代码库相关联。如果您在发布或安装软件包的命令中添加了范围,npm 会使用您的代码库。当您发布或安装没有范围的软件包时,系统会使用您配置的默认代码库。如需了解详情,请参阅 Node.js 概览。gcloud命令的输出类似于以下示例。 PROJECT 是您的 Google Cloud 项目 ID。@quickstart:registry=https://us-central1-npm.pkg.dev/PROJECT/quickstart-nodejs-repo/ //us-central1-npm.pkg.dev/PROJECT/quickstart-nodejs-repo/:always-auth=true将上一步中的配置设置添加到每个 npm 项目中的项目
.npmrc文件中。与package.json文件位于同一目录中的文件。如需详细了解
.npmrc文件,请参阅 Node.js 概览。每个 Artifact Registry Node.js 软件包代码库都与一个 npm 注册表端点
https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY相关联。如果您创建另一个 Artifact Registry Node.js 软件包代码库,则 npm 将作为一个具有自己的范围的单独注册表与该代码库进行交互。
在
emoji-regex和npm-package2项目中修改package.json。确保
name的值包含quickstart范围。- 对于
emoji-regex:
"name": "@quickstart/emoji-regex"- 对于
npm-package2:
"name": "@quickstart/npm-package2"- 对于
在
scripts下,添加一个用于 google-artifactregistry-auth 的脚本,该客户端库用于更新 Artifact Registry 代码库的凭据。"scripts": { "artifactregistry-login": "npx google-artifactregistry-auth --repo-config=./.npmrc --credential-config=./.npmrc" }
将软件包上传到代码库
刷新用于连接到代码库的访问令牌。
npm run artifactregistry-login将您的软件包添加到代码库。您可以使用
npm或yarn命令。npm publishyarn publish
查看代码库中的软件包
如需验证您的软件包是否已添加到代码库中,请执行以下操作:
控制台
在 Google Cloud 控制台中打开代码库页面。
在代码库列表中,点击
quickstart-nodejs-repo代码库。软件包页面列出代码库中的软件包。
点击软件包以查看软件包版本。
gcloud
如需列出默认 quickstart-nodejs-repo 代码库中的映像,请运行以下命令:
gcloud artifacts packages list
如需查看软件包的版本,请运行以下命令:
gcloud artifacts versions list --package=PACKAGE
其中,PACKAGE 是软件包 ID。
安装软件包
从 npm-package2 中的 Artifact Registry 代码库安装 emoji-regex 软件包。
在 npm-package2 目录中,运行 npm install 或 yarn add 命令:
npm install @quickstart/emoji-regex
yarn add @quickstart/emoji-regex
该命令会在 npm-package2 项目中安装 emoji-regex 软件包。
它还会更新 package.json,以将 emoji-regex 设置为依赖项。
"dependencies": {
"@quickstart/emoji-regex": "^10.1.0"
}
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
在移除代码库之前,请确保要保留的任何软件包在其他位置提供。
如需删除代码库,请执行以下操作:
控制台
在 Google Cloud 控制台中打开代码库页面。
在代码库列表中,选择
quickstart-nodejs-repo代码库。点击删除。
gcloud
如需删除
quickstart-nodejs-repo代码库,请运行以下命令:gcloud artifacts repositories delete quickstart-nodejs-repo如果要移除您为活跃
gcloud配置配置的默认代码库和位置设置,请运行以下命令:gcloud config unset artifacts/repository gcloud config unset artifacts/location
后续步骤
- 详细了解如何配置身份验证
- 了解如何管理代码库
- 了解如何管理软件包
- 阅读我们关于 DevOps 的资源,并了解我们的研究项目。