在 Artifact Registry 中存储 Node.js 软件包

本快速入门介绍如何设置私有 Artifact Registry Node.js 软件包代码库并向其上传软件包。

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Artifact Registry API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. 如果您想从以下位置连接到 Node.js 软件包代码库,请安装 PowerShell 窗户。

启动 Cloud Shell

在本快速入门中,您将使用 Cloud Shell,这是一个用于管理 Google Cloud 上托管资源的 Shell 环境。

Cloud Shell 预装了 Google Cloud CLI。gcloud CLI 为 Google Cloud 提供了主要的命令行界面。

启动 Cloud Shell:

  1. 转到 Google Cloud 控制台。

    Google Cloud 控制台

  2. 在 Google Cloud 控制台工具栏中,点击激活 Cloud Shell

控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

创建 Node.js 软件包代码库

为 Node.js 工件创建代码库。

  1. 创建代码库。

    控制台

    1. 打开 Google Cloud 控制台中的制品库页面。

      打开“代码库”页面

    2. 点击创建代码库

    3. 指定 quickstart-nodejs-repo 作为该代码库的名称。

    4. 选择 npm 作为格式,选择标准作为模式。

    5. 位置类型下,选择区域,然后选择位置 us-central1

    6. 点击创建

    该代码库会被添加到代码库列表中

    gcloud

    1. 运行以下命令新建名为 quickstart-nodejs-repo(地点:us-central1) 说明“Node.js 代码库”。

      gcloud artifacts repositories create quickstart-nodejs-repo --repository-format=npm \
      --location=us-central1 --description="Node.js package repository"
      
    2. 运行以下命令确认已创建代码库。

      gcloud artifacts repositories list
      

    如需详细了解 Artifact Registry 命令,请运行 gcloud artifacts 命令。

  2. 为了简化 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 项目 使用您创建的代码库进行身份验证在本快速入门中,您将上传一个简单的软件包,然后将其作为依赖项安装到第二个软件包中。

  1. 下载 emoji-regex 软件包,这是一个简单的软件包, 提供正则表达式以匹配所有表情符号符号和序列。

    npm pack emoji-regex
    

    该命令会下载软件包的归档。

  2. 将归档解压缩到 emoji-regex 目录中。以下命令是 以获取 emoji-regex 10.1.0 版本的归档:

    mkdir emoji-regex && tar xvf emoji-regex-10.1.0.tgz -C emoji-regex --strip-components 1
    
  3. 创建第二个 npm 软件包,用于从 Artifact Registry 安装 emoji-regex 软件包。对于此软件包,请使用 npm init 命令创建基本软件包。

    mkdir npm-package2
    cd npm-package2
    
    npm init -y
    

    出现提示时,请接受默认值。

  4. emoji-regexnpm-package2 项目配置为使用您创建的 Artifact Registry 制品库进行身份验证。

    1. 运行以下命令。该命令会返回要添加到 npm 配置文件的配置设置。

      gcloud artifacts print-settings npm --scope=@quickstart
      

      quickstart scope 与您的代码库相关联。当您在发布或安装软件包的命令中添加范围时,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
      
    2. 将上一步中的配置设置添加到每个 npm 项目的项目 .npmrc 文件中。该文件位于 package.json 文件所在的目录中。

      如需详细了解 .npmrc 文件,请参阅 Node.js 概览

      每个 Artifact Registry Node.js 软件包代码库都与一个 npm 注册表端点 https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY 相关联。如果您创建另一个 Artifact Registry Node.js 软件包代码库,则 npm 将作为一个具有自己范围的单独注册表与该代码库进行交互。

  5. emoji-regexnpm-package2 项目中修改 package.json

    1. 确保 name 的值包含 quickstart 作用域。

      • 对于 emoji-regex
      "name": "@quickstart/emoji-regex"
      
      • 对于 npm-package2
      "name": "@quickstart/npm-package2"
      
    2. scripts 下,为以下各项添加脚本: google-artifactregistry-auth,一个客户端库 用于更新 Artifact Registry 代码库凭据的功能。

      "scripts": {
        "artifactregistry-login": "npx google-artifactregistry-auth"
      }
      

将软件包上传到代码库

  1. 请刷新用于连接到代码库的访问令牌。

    npm run artifactregistry-login
    
  2. 将您的软件包添加到代码库。您可以使用 npmyarn 命令。

    npm publish
    
    yarn publish
    

查看代码库中的软件包

如需验证您的软件包是否已添加到代码库中,请执行以下操作:

控制台

  1. 打开 Google Cloud 控制台中的制品库页面。

    打开“代码库”页面

  2. 在代码库列表中,点击 quickstart-nodejs-repo 代码库。

    软件包页面列出代码库中的软件包。

  3. 点击软件包以查看软件包版本。

gcloud

如需列出默认 quickstart-nodejs-repo 代码库中的映像,请运行以下命令:

 gcloud artifacts packages list

如需查看软件包的版本,请运行以下命令:

gcloud artifacts versions list --package=PACKAGE

其中,PACKAGE 是软件包 ID。

安装软件包

安装 Artifact Registry 代码库中的 emoji-regex 软件包 在 npm-package2 中。

npm-package2 目录中,运行 npm installyarn 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 账号产生费用,请按照以下步骤操作。

在移除代码库之前,请确保要保留的任何软件包在其他位置提供。

如需删除代码库,请执行以下操作:

控制台

  1. 打开 Google Cloud 控制台中的制品库页面。

    打开“代码库”页面

  2. 在代码库列表中,选择 quickstart-nodejs-repo 代码库。

  3. 点击删除

gcloud

  1. 如需删除 quickstart-nodejs-repo 代码库,请运行以下命令:

    gcloud artifacts repositories delete quickstart-nodejs-repo
    
  2. 如果要移除您为活跃 gcloud 配置配置的默认代码库和位置设置,请运行以下命令:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

后续步骤