分享方式:


將 npm 項目連線至 Azure Artifacts

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Artifacts 可讓開發人員從各種來源管理其套件,包括 npmjs.com 和私人摘要等公用登錄。 若要向 Azure Artifacts 進行驗證,您必須設定 npm 組態檔。 此檔案包含 npm 所使用的摘要 URL 和認證、提供自定義 npm 用戶端行為的選項,例如設定 Proxy、定義預設套件位置,或設定私人套件摘要。 .npmrc 檔案通常位於使用者的主目錄中,但也可以在專案層級建立以覆寫默認設定。

必要條件

線上至摘要

Azure Artifacts 建議使用兩個不同的組態檔。 第一個是專門用來向 Azure Artifacts 進行驗證,而第二個應該保留在本機以儲存您的認證。 這種方法可讓您共用組態檔,同時保護您的認證。

若要設定第二個檔案,只要將它放在開發電腦上的主目錄中,並包含您的所有登錄認證即可。 這可讓 npm 用戶端輕鬆地存取您的認證以進行驗證。

下列步驟將引導您設定第一個組態檔:

注意

vsts-npm-auth Azure DevOps Server 不支援。

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取 [ 成品],然後選取 [ 聯機至摘要]。

    顯示如何在 Azure DevOps Services 中聯機至摘要的螢幕快照。

  3. 從左側提要欄位中選取 npm 。 如果這是第一次搭配 npm 使用 Azure Artifacts,請確定您已安裝必要條件。

  4. 請遵循 [項目設定] 區段中的指示,聯機到您的摘要。

    顯示如何設定 npm 項目的螢幕快照。

  1. 登入您的 Azure DevOps 集合,然後流覽至您的專案。

  2. 選取 [ 成品],然後選取 [ 聯機至摘要]。

    顯示如何在 Azure DevOps Server 2022.1 中聯機至摘要的螢幕快照。

  3. 從左側提要欄位中選取 npm,然後遵循 [項目設定] 區段中的指示來設定組態檔。

    顯示如何在 Azure DevOps Server 2022.1 中設定 npm 項目的螢幕快照。

  1. 登入您的 Azure DevOps 集合,然後流覽至您的專案。

  2. 選取 [ 成品],然後選取 [ 聯機至摘要]。

    顯示如何在 Azure DevOps Server 2020.1 中連線到摘要的螢幕快照。

  3. 從左側選取 npm,然後遵循 Project 安裝程式中的指示來設定您的組態檔。

    顯示如何在 Azure DevOps Server 2020.1 中設定 npm 項目的螢幕快照。

  1. 登入您的 Azure DevOps 集合,然後流覽至您的專案。

  2. 選取 [ 成品],然後選取 [ 聯機至摘要]。

    顯示如何在 Azure DevOps Server 2019.1 中連線至摘要的螢幕快照。

  3. 會出現新視窗。 從左側瀏覽窗格中,選取 [npm]。

  4. 請遵循提供的指示來設定項目使用者 .npmrc 檔案。

    顯示如何在 Azure DevOps Server 2019.1 中設定專案層級和用戶層級 npmrc 檔案的螢幕快照。

提示

在 .npmrc 檔案中使用多個登錄支援 範圍上游來源

管線驗證

若要向管線進行驗證,Azure Artifacts 建議使用 npm 驗證工作

使用 gulp 或 Grunt 之類的工作執行器時,它會優先設定管 線開頭的 npm 驗證工作 。 此步驟可確保您的認證會插入專案的 .npmrc 檔案,並在整個管線執行期間保留,讓後續步驟存取組態檔中的認證。

  1. 流覽至您的項目,選取 [管線],然後選取您的管線定義。

  2. 選取 [編輯 ] 以修改您的管線。

  3. 選取 + 以將新工作新增至管線。

    顯示如何將 npm 驗證工作新增至管線的螢幕快照。

  1. 流覽至您的項目,選取 [管線>組建],然後選取您的組建定義。

  2. 選取 [編輯 ] 以修改組建管線。

  3. 選取 + 以將新工作新增至組建管線。

    顯示如何將 npm 驗證工作新增至管線的螢幕快照。

  1. 搜尋 npm 驗證工作,然後選取 [新增]。

    此螢幕快照顯示已新增至管線的 npm 驗證工作。

  2. 選取您的 .npmrc 檔案,然後在完成時選取 [ 儲存和佇列 ]。

    顯示如何新增 *.npmrc* 檔案的螢幕快照。

注意

若要從管線存取摘要,請確定您的摘要設定>許可權中的組建服務角色已設定為摘要和上游讀取者(參與者)。

顯示摘要設定中組建服務角色的螢幕快照。

注意

如果您的組織使用防火牆或 Proxy 伺服器,請確定您允許適當的網域 URL。 如需詳細資訊,請參閱 允許的IP位址和網域URL

疑難排解

無法辨識 vsts-npm-auth

此錯誤表示 npm modules 資料夾尚未新增至您的路徑。 重新執行Node.js設定,並確定選取 Add to PATH 選項。 或者,您也可以在命令提示字元或 $env:APPDATA\npm PowerShell 中將 PATH 變數修改為 %APPDATA%\npm ,將 npm modules 資料夾新增至路徑。

顯示如何設定node.js的螢幕快照。

無法驗證

  • 錯誤:代碼 E401 npm ERR!無法驗證: -> 使用 -F 旗標執行vsts-npm-auth命令以重新驗證:

    vsts-npm-auth -config .npmrc -F
    

重設 vsts-npm-auth

請遵循下列步驟來重設 vsts-npm-auth 認證:

  1. 卸載 vsts-npm-auth:

    npm uninstall -g vsts-npm-auth
    
  2. 清除 npm 快取:

    npm cache clean --force
    
  3. 刪除 . npmrc 檔案。

  4. 重新安裝 vsts-npm-auth:

    npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
    

無法發佈

如果您遇到 403 錯誤,則可能表示名稱衝突。 在 Azure Artifacts 中,套件是不可變的,這表示一旦您將套件發佈至摘要,就會永久保留其版本號碼。 即使您刪除它,也無法發佈具有相同版本號碼的新套件。 若要解決此問題,請更新package.json檔案中的套件版本,然後再試一次。