選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

搭配 CodeArtifact 設定和使用 npm

焦點模式
搭配 CodeArtifact 設定和使用 npm - CodeArtifact

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

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

在 CodeArtifact 中建立儲存庫之後,您可以使用 npm 用戶端來安裝和發佈套件。使用儲存庫端點和授權字符設定 npm 的建議方法是使用 aws codeartifact login命令。您也可以手動設定 npm。

使用登入命令設定 npm

使用 aws codeartifact login命令來擷取登入資料,以便與 npm 搭配使用。

注意

如果您要存取您擁有之網域中的儲存庫,則不需要包含 --domain-owner。如需詳細資訊,請參閱跨帳戶網域

重要

如果您使用的是 npm 10.x 或更新版本,則必須使用 2 AWS CLI .9.5 或更新版本才能成功執行aws codeartifact login命令。

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

此命令會對 ~/.npmrc 檔案進行下列變更:

  • 使用您的 AWS 登入資料從 CodeArtifact 擷取授權字符後,新增授權字符。

  • 將 npm 登錄檔設定為 --repository選項指定的儲存庫。

  • 對於 npm 6 和更低:新增 ,"always-auth=true"以便為每個 npm 命令傳送授權字符。

呼叫 後的預設授權期間login為 12 小時,login必須呼叫 以定期重新整理字符。如需使用 login命令建立的授權字符的詳細資訊,請參閱 使用 login命令建立的字符

不使用登入命令設定 npm

您可以使用 CodeArtifact 儲存庫設定 npm,無需 aws codeartifact login命令,方法是手動更新 npm 組態。

設定 npm 而不使用登入命令
  1. 在命令列中,擷取 CodeArtifact 授權字符並將其存放在環境變數中。npm 將使用此字符來驗證您的 CodeArtifact 儲存庫。

    注意

    下列命令適用於 macOS 或 Linux 機器。如需在 Windows 機器上設定環境變數的資訊,請參閱 使用 環境變數傳遞身分驗證字符

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 執行下列命令,取得 CodeArtifact 儲存庫的端點。您的儲存庫端點用來將 npm 指向您的儲存庫,以安裝或發佈套件。

    • 以您的 CodeArtifact 網域名稱取代 my_domain

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

    • my_repo 取代為您的 CodeArtifact 儲存庫名稱。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm

    下列 URL 是範例儲存庫端點。

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
    重要

    登錄 URL 必須以正斜線 (/) 結尾。否則,您無法連線至儲存庫。

  3. 使用 npm config set命令將登錄檔設定為 CodeArtifact 儲存庫。將 URL 取代為上一個步驟的儲存庫端點 URL。

    npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
    注意

    若要使用雙堆疊端點,請使用 codeartifact.region.on.aws端點。

  4. 使用 npm config set命令將授權字符新增至 npm 組態。

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN

    對於 npm 6 或更低:若要讓 npm 一律將身分驗證字符傳遞至 CodeArtifact,即使是GET請求,請使用 設定always-auth組態變數npm config set

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true

範例 npm 組態檔案 (.npmrc)

以下是遵循上述指示設定 CodeArtifact 登錄端點、新增身分驗證字符和設定 之後的範例.npmrc檔案always-auth

registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/ //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX... //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true

執行 npm 命令

設定 npm 用戶端之後,您可以執行 npm 命令。假設套件存在於您的儲存庫或其上游儲存庫之一,您可以使用 安裝套件npm install。例如,使用下列命令來安裝 lodash套件。

npm install lodash

使用下列命令將新的 npm 套件發佈至 CodeArtifact 儲存庫。

npm publish

如需如何建立 npm 套件的資訊,請參閱 npm 文件網站上的建立 Node.js 模組。如需 CodeArtifact 支援的 npm 命令清單,請參閱 npm 命令支援

驗證 npm 身分驗證和授權

叫用 npm ping命令是一種驗證下列項目的方法:

  • 您已正確設定您的登入資料,因此您可以向 CodeArtifact 儲存庫進行身分驗證。

  • 授權組態會授予您 ReadFromRepository許可。

成功調用 的輸出npm ping如下所示。

$ npm -d ping npm info it worked if it ends with ok npm info using npm@6.4.1 npm info using node@v9.5.0 npm info attempt registry request try #1 at 4:30:59 PM npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true npm http 200 https:///npm/shared/-/ping?write=true Ping success: {} npm timing npm Completed in 716ms npm info ok

-d 選項會導致 npm 列印其他偵錯資訊,包括儲存庫 URL。此資訊可讓您輕鬆地確認 npm 已設定為使用您預期的儲存庫。

變更回預設 npm 登錄檔

使用 CodeArtifact 設定 npm 會將 npm 登錄檔設定為指定的 CodeArtifact 儲存庫。當您完成連線至 CodeArtifact 時,您可以執行下列命令,將 npm 登錄檔設回其預設登錄檔。

npm config set registry https://registry.npmjs.com/

使用 npm 8.x 或更高版本對慢速安裝進行故障診斷

npm 版本 8.x 及更高版本中存在已知問題,其中,如果向套件儲存庫提出請求,且儲存庫將用戶端重新導向至 Amazon S3,而不是直接串流資產,則 npm 用戶端每個相依性可以掛斷幾分鐘。

由於 CodeArtifact 儲存庫的設計一律會將請求重新導向至 Amazon S3,因此有時候會發生此問題,這會導致建置時間過長,因為 npm 安裝時間過長。此行為的執行個體會以進度列顯示自己幾分鐘。

若要避免此問題,請使用 --no-progressprogress=false旗標搭配 npm cli 命令,如下列範例所示。

npm install lodash --no-progress

下一個主題:

設定和使用 Yarn

上一個主題:

使用 NPM
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。