共用方式為


將 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 用戶端輕鬆地存取您的認證以進行驗證。

下列步驟會引導您設定第一個組態檔。 選擇對應你的開發環境的索引標籤:

注意

Azure DevOps Server 不支援 vsts-npm-auth

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

  2. 選取 [成品],然後選取 [連接至 Feed]。

    顯示如何在 Azure DevOps Services 中連線到 feed 的螢幕快照。

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

  4. 請遵循 專案設定 一節中的指示,連線到您的資料源。

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

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

  2. 選取 [成品],然後選取 [連接至 Feed]。

    顯示在 Azure DevOps Server 2022.1 中如何連線到饋送的螢幕快照。

  3. 從左側提要欄位中選取 [npm],然後依照 Project 安裝程式 區段中的指示來設定組態檔。

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

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

  2. 選取 [工件],然後選取 [連線到提要]。

    顯示如何在 Azure DevOps Server 2020.1 中連線至訊息源的螢幕快照。

  3. 從左側選取 [npm],然後依照 Project 安裝程式 中的指示設定組態檔。

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

提示

在 .npmrc 檔案中,可以使用多個註冊表,並且支援 範圍上游來源

疑難排解

無法辨識 vsts-npm-auth 指令

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

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

無法驗證

  • 錯誤:代碼 E401 npm ERR!無法驗證: -> 使用 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 檔案中的套件版本,然後再試一次。