npm 快速入门

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

软件包管理目前为 Alpha 版。它仅适用于 Alpha 版用户,可能不包含容器管理可用的所有特性。若要申请 Alpha 版,请填写注册表单

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Artifact Registry API。

    启用 API

  5. 安装并初始化 Cloud SDK
  6. 如果您要从 Windows 连接到 npm 代码库,请安装 PowerShell。

创建 npm 代码库

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

  1. 创建代码库。

    控制台

    1. 在 Cloud Console 中打开 代码库页面。

      打开代码库页面

    2. 点击创建代码库

    3. 指定 quickstart-npm-repo 作为代码库名称。

    4. 选择 npm 作为格式。

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

    6. 点击创建

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

    gcloud

    1. 运行以下命令,在位置 us-central1 中创建一个名为 quickstart-npm-repo 且带有说明“npm 代码库”的新 npm 代码库。

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

      gcloud artifacts repositories list
      

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

  2. 为了简化 gcloud 命令,请将默认代码库设置为 quickstart-npm-repo,并将默认位置设置为 us-central1。设置以上值之后,您无需在需要代码库或位置的 gcloud 命令中指定这些值。

    如需设置代码库,请运行以下命令:

    gcloud config set artifacts/repository quickstart-npm-repo
    

    如需设置位置,请运行以下命令:

    gcloud config set artifacts/location us-central1
    

    如需详细了解这些命令,请参阅 gcloud config set 文档。

为客户端设置服务帐号

创建服务帐号或选择现有服务帐号以代表 npm 执行操作。

  1. 创建一个服务帐号代表您的应用执行操作,或选择一个现有服务帐号用于进行自动化。

    您需要服务帐号密钥文件所在的位置,才能使用 Artifact Registry 设置身份验证。对于现有帐号,您可以在“服务帐号”页面上查看密钥和创建新密钥。

    转到“服务帐号”页面

  2. 为服务帐号授予您的代码库的读写访问权限。

    gcloud artifacts repositories add-iam-policy-binding \
    quickstart-npm-repo --location=us-central1 --member='serviceAccount:ACCOUNT' --role='roles/artifactregistry.writer'
    

    其中,ACCOUNT 是服务帐号的 ID,格式为 USERNAME@PROJECT-ID.iam.gserviceaccount.com

  3. 将服务帐号密钥文件分配给变量 GOOGLE_APPLICATION_CREDENTIALS,以便 Artifact Registry 凭据帮助程序可在与代码库连接时获取您的密钥。

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    其中,KEY-FILE 是服务帐号密钥文件的路径。

    如需了解如何改用服务帐号密钥文件来设置密码身份验证,请参阅 authentication#auth-password 文档。

配置 npm

  1. 创建一个要上传的 npm 软件包。如果您没有可用于此快速入门的软件包,请运行以下命令创建一个纯 package.json 文件:

    npm init -y
    
  2. 盗劫 npm 项目配置为部署到您创建的 Artifact Registry 代码库。

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

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

      quickstart 范围与您的代码库相关联。当您在命令中添加范围以发布或安装软件包时,npm 会使用您的代码库。当您发布或安装没有范围的软件包时,系统将会使用您配置的默认代码库。如需了解详情,请参阅 Node.js 概览

      gcloud 命令的输出如下所示:

      @quickstart:registry=https://us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/
      //us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/:_authToken=""
      //us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/:always-auth=true
      
    2. 将上一步中的配置设置添加到项目 .npmrc 文件中。该文件通常与 package.json 文件位于同一目录。

      PROJECT 替换为您的项目 ID。

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

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

将软件包上传到代码库

  1. 选择要上传的软件包。确保 package.json 中的软件包名称包含 quickstart 范围。

    "name": "@quickstart/my-package"
    
  2. 刷新用于连接到代码库的访问令牌。google-artifactregistry-auth 是一个客户端库,用于更新 Artifact Registry 代码库的凭据。如需刷新凭据,请使用以下任一方法:

    • 将脚本添加到项目的 package.json 文件中。

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

      使用以下命令运行脚本:

      npm run artifactregistry-login PROJECT-NPMRC
      

      其中 PROJECT-NPMRC 是项目目录中 .npmrc 文件的路径。

    • 对于低于 5.2.0 的 npm 版本,请执行以下步骤:

      1. 运行以下命令:
      npm install google-artifactregistry-auth --save-dev --registry https://registry.npmjs.org/
      
      1. 将其添加到身份验证脚本中:
      "scripts": {
          "artifactregistry-login": "./node_modules/.bin/artifactregistry-auth",
      }
      

      使用以下命令运行脚本:

      npm run artifactregistry-login PROJECT-NPMRC
      

      其中 PROJECT-NPMRC 是项目目录中 .npmrc 文件的路径。

  3. 将您的软件包添加到代码库中。您可以使用 npmyarn 命令。

    npm publish
    
    yarn publish
    

查看代码库中的软件包

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

控制台

  1. 在 Cloud Console 中打开 代码库页面。

    打开“代码库”页面

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

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

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

gcloud

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

 gcloud artifacts packages list

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

gcloud artifacts versions list --package=PACKAGE

其中,PACKAGE 是软件包 ID。

安装软件包

如需从 npm 代码库安装软件包,请使用 npm installyarn add 命令。将 PACKAGE 替换为您的软件包名称。

npm install @quickstart/PACKAGE
yarn add @quickstart/PACKAGE

清理

为避免系统因本快速入门中使用的资源向您的 Google Cloud 帐号收取费用,请按照以下步骤操作。

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

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

控制台

  1. 在 Cloud Console 中打开 代码库页面。

    打开“代码库”页面

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

  3. 点击删除

gcloud

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

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

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

后续步骤