Node.js パッケージを管理する

Artifact Registry は、npm で管理する Node.js パッケージをサポートしています。

概要

Artifact Registry の Node.js パッケージに慣れるには、クイックスタートをお試しください。

詳細をご確認いただく準備が整ったら、以下の情報をご覧ください。

  1. npm を初めて使用する場合は、次のコンセプトをお読みください。
  2. パッケージ用に Node.js パッケージ リポジトリを作成する
  3. リポジトリに接続するアカウントに権限を付与する。Artifact Registry との一般的な統合に使用されるサービス アカウントには、同一のプロジェクト内のリポジトリに対するデフォルトの権限が割り当てられています。
  4. ツールを構成します。
  5. パッケージの管理について学習する。

スコープを使用する

npm スコープは、パッケージをグループ化するためのラベルです。スコープは、次のような複数の npm レジストリを操作する場合に必要です。

  • 1 つのレジストリから別のレジストリに切り替えずに、パッケージの公開とインストールを行う場合。たとえば、ビルドに公開 npm レジストリと Artifact Registry リポジトリの両方からのパッケージが含まれるケースです。
  • Google Cloud プロジェクトだけでなく他の npm レジストリにわたって、パッケージ名の競合問題を発生させずに、同じパッケージを複数の Artifact Registry リポジトリに公開する場合。

リポジトリのスコープを常に設定することをおすすめします。パッケージの公開またはインストール時にスコープを指定しないと、npm は構成されたデフォルトのレジストリ(公開 npm レジストリなど)を使用します。

各 Artifact Registry リポジトリのスコープを .npmrc 構成ファイルで設定します。認証で、同じ認証情報がリポジトリ全体に適用されます。

次の例は、異なるプロジェクトにおける 2 つの Artifact Registry リポジトリの構成を示しています。

  • プロジェクト blue-project のリポジトリ用に設定される @blue スコープ。
  • プロジェクト green-project のリポジトリ用に設定される @green スコープ。
@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-projectblue-npm-repo にパッケージをアップロードします。

npm publish @blue/blue-npm-repo

スコープの詳細については、npm のドキュメントをご覧ください。

npm の構成

認証に使用される設定は、.npmrc 構成ファイルに保存されます。.npmrc ファイルは、プロジェクト レベル、ユーザーレベル、グローバル レベルで構成できます。

Artifact Registry で認証を構成するときには、接続するリポジトリと、認証の認証情報を定義します。

Artifact Registry リポジトリ

プロジェクトごとの構成ファイルでリポジトリ リストを設定することをおすすめします。このファイルは通常、npm プロジェクトの package.json ファイルと同じディレクトリにあります。Artifact Registry の認証情報ヘルパーは、デフォルトでリポジトリのこの .npmrc ファイルを確認します。

ソース コントロール システムでリポジトリパスを公開しない場合は、次のことができます。

  • ソース コントロールで無視するファイルのリストに .npmrc ファイル名を追加します。
  • または、リポジトリ リストをユーザーごとの構成ファイルに保存します。ユーザーごとの .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 構成ファイルのドキュメントをご覧ください。