配置和使用紗線CodeArtifact - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

配置和使用紗線CodeArtifact

建立儲存庫之後,您可以使用 Yarn 用戶端來管理 npm 套件。

注意

Yarn 1.X讀取並使用您的 npm 配置文件(.npmrc)中的信息,而Yarn 2.X沒有。的配置Yarn 2.X必須在 .yarnrc.yml 檔案中定義。

配置紗線 1.Xaws codeartifact login命令

對於Yarn 1.X,您可以配置紗線CodeArtifact使用aws codeartifact login指令。該login命令將使用您的〜 /.npmrc 文件配置CodeArtifact儲存庫端點資訊和認證。同Yarn 1.X,yarn指令會使用 ~/.npmrc 檔案中的組態資訊。

若要設定Yarn 1.X使用登錄命令
  1. 如果您尚未這樣做,請配置您的AWS憑證以搭配使用AWS CLI,如中所述入門 CodeArtifact

  2. 若要執行aws codeartifact login命令成功,必須安裝 npm。請參閱下載和安裝 Node.js 和故宮npm 文件以取得安裝說明。

  3. 使用aws codeartifact login要擷取的指令CodeArtifact憑據並配置您的 ~/.npmrc 文件。

    • 取代我的網域名稱與您的CodeArtifact網域名稱。

    • 取代111122223333與AWS網域擁有者的帳號 ID。如果您正在訪問您擁有的域中的存儲庫,則不需要包含--domain-owner。如需詳細資訊,請參閱跨帳戶網域

    • 取代我的回購與您的CodeArtifact儲存庫名稱。

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

    login指令對您的 ~/.npmrc 檔案進行下列變更:

    • 從中獲取後添加授權令牌CodeArtifact使用您的AWS認證。

    • 將 npm 註冊表設置為由指定的存儲庫--repository選項。

    • 對於 npm 6 及更低版本:添加"always-auth=true"所以授權令牌是為每個 npm 命令發送的。

    調用後的默認授權期login是 12 小時,並且login必須調用以定期刷新令牌。如需有關使用login指令,請參閱使用 login命令建立的權杖

  4. 對於故宮 7.X 和 8.X,您必須新增always-auth=true到您的〜 /.npmrc 文件中以使用紗線。

    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 }

配置紗線 2.X 與yarn config set命令

下列程序詳細說明如何設定Yarn 2.X通過更新您的.yarnrc.yml從命令行配置yarn config set指令。

若要更新yarnrc.yml從命令行配置
  1. 如果您尚未這樣做,請配置您的AWS憑證以搭配使用AWS CLI,如中所述入門 CodeArtifact

  2. 使用aws codeartifact get-repository-endpoint命令來獲取您的CodeArtifact儲存庫的端點。

    • 取代我的網域名稱與您的CodeArtifact網域名稱。

    • 取代111122223333與AWS網域擁有者的帳號 ID。如果您正在訪問您擁有的域中的存儲庫,則不需要包含--domain-owner。如需詳細資訊,請參閱跨帳戶網域

    • 取代我的回購與您的CodeArtifact儲存庫名稱。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
  3. 更新npmRegistryServer使用存儲庫端點的 .yarnrc.yml 文件中的值。

    yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
  4. 獲取一個CodeArtifact授權令牌並將其存儲在環境變量中。

    注意

    以下指令適用於 MacOS 或 Linux 電腦。如需在 Windows 電腦上設定環境變數的相關資訊,請參閱使用環境變數傳遞身分驗證權杖

    • 取代我的網域名稱與您的CodeArtifact網域名稱。

    • 取代111122223333與AWS網域擁有者的帳號 ID。如果您正在訪問您擁有的域中的存儲庫,則不需要包含--domain-owner。如需詳細資訊,請參閱跨帳戶網域

    • 取代我的回購與您的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指令來設定值npmAlwaysAuthtrue。將下列指令中的 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用於檢查值的命令npmRegistriesnpmRegistryServer