CodeArtifact で Yarn を設定して使用する - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CodeArtifact で Yarn を設定して使用する

リポジトリを作成すると、Yarn クライアントを使用して npm パッケージを管理できます。

注記

Yarn 1.X は npm 設定ファイル (.npmrc) から情報を読み取り、使用します。一方、Yarn 2.X はこれを行いません。Yarn 2.X の設定は .yarnrc.yml ファイルで定義する必要があります。

aws codeartifact login コマンドを使用して Yarn 1.X を設定します。

Yarn 1.X の場合では、aws codeartifact login コマンドを使用して CodeArtifact で Yarn を設定できます。login コマンドは、CodeArtifact リポジトリのエンドポイント情報と認証情報を使用して ~/.npmrc ファイルを設定します。Yarn 1.Xyarn コマンドは、 ~/.npmrc ファイルの設定情報を使用します。

login コマンドを使用して Yarn 1.X を設定するには
  1. まだ設定していない場合は、CodeArtifact の開始方法 に記述されているように、AWS CLI で使用するための AWS 認証情報を設定します。

  2. aws codeartifact login コマンドを正常に実行するには、npm をインストールする必要があります。インストール手順については、npm ドキュメントNode.js と npm のダウンロードとインストール を参照してください。

  3. aws codeartifact login コマンドを使用して CodeArtifact 認証情報を取得し、~/.npmrc ファイルを設定します。

    • my_domain を CodeArtifact ドメイン名で置き換えます。

    • 111122223333 をAWS ドメインの所有者のアカウント ID で置き換えます。所有しているドメインのリポジトリにアクセスする場合は、--domain-owner を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    • my_repo を CodeArtifact リポジトリ名で置き換えます。

    aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo

    loginコマンドを使用すると、~/.npmrc ファイルに次の変更が行われます。

    • AWS 認証情報を使用して CodeArtifact からフェッチした後、認可トークンを追加します。

    • npm レジストリを、--repository オプションで指定されたリポジトリに設定します。

    • npm 6 以下の場合: "always-auth=true" を追加すると、認可トークンはすべての npm コマンドに対して送信されます。

    login を呼び出した後のデフォルトの認可期間は12時間であり、トークンを定期的に更新するには login を呼び出す必要があります。login コマンドを使用して作成された認可トークンの詳細については、「loginコマンドで作成されたトークン」を参照してください。

  4. npm 7.X および 8.X の場合は、always-auth=true を~/.npmrc ファイルに追加して Yarn を使用する必要があります。

    1. ~/.npmrc ファイルをテキストエディタで開き、always-auth=true を新しい行に追加します。

yarn config list コマンドを使用して、Yarn が正しい設定を使用していることを確認できます。コマンドを実行した後、info npm config セクションの値をチェックします。コンテンツは次のスニペットのようになります。

info npm config { registry: 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/', '//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken': 'eyJ2ZXI...', 'always-auth': true }

yarn config set コマンドを使用して Yarn 2.X を設定します。

次の手順は、yarn config set コマンドを使用して、コマンドラインから .yarnrc.yml 設定を更新して Yarn 2.X を設定する方法の詳細です。

コマンドラインから yarnrc.yml 設定を更新するには
  1. まだ設定していない場合は、CodeArtifact の開始方法 に記述されているように、AWS CLI で使用するための AWS 認証情報を設定します。

  2. aws codeartifact get-repository-endpoint コマンドを使用して、CodeArtifact リポジトリのエンドポイントを取得します。

    • my_domain を CodeArtifact ドメイン名で置き換えます。

    • 111122223333 をAWS ドメインの所有者のアカウント ID で置き換えます。所有しているドメインのリポジトリにアクセスする場合は、--domain-owner を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    • my_repo を CodeArtifact リポジトリ名で置き換えます。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
  3. リポジトリエンドポイントを使用して、.yarnrc.yml ファイルで npmRegistryServer 値を更新します。

    yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
  4. CodeArtifact 認可トークンを取得し、環境変数に保存します。

    注記

    次のコードは、Linux と MacOS 用です。Windows での環境変数の設定については、「環境変数を使用して認証トークンを渡す」を参照してください。

    • my_domain を CodeArtifact ドメイン名で置き換えます。

    • 111122223333 をAWS ドメインの所有者のアカウント ID で置き換えます。所有しているドメインのリポジトリにアクセスする場合は、--domain-owner を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    • my_repo を CodeArtifact リポジトリ名で置き換えます。

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  5. yarn config set コマンドを使用して、CodeArtifact 認可トークンを .yarnrc.yml ファイルに追加します。次のコマンドの URL を、ステップ 2 のリポジトリエンドポイントの URL に置き換えます。

    yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}"
  6. yarn config set コマンドを使用して、npmAlwaysAuth の値を true に設定します。次のコマンドの URL を、ステップ 2 のリポジトリエンドポイントの URL に置き換えます。

    yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAlwaysAuth' "true"

設定後、.yarnrc.yml 設定ファイルには、次のスニペットに似た内容が含まれている必要があります。

npmRegistries: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/": npmAlwaysAuth: true npmAuthToken: eyJ2ZXI... npmRegistryServer: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/"

また、 yarn config コマンドを使用して、npmRegistries および npmRegistryServer の値を確認することもできます。