管理 Visual Studio 中的 npm 套件

npm 可讓您安裝和管理要在 Node.js 和 ASP.NET Core 應用程式中使用的套件。 Visual Studio 可讓您輕鬆地與 npm 互動,並透過 UI 或直接發出 npm 命令。 如果您不熟悉 npm,而且想要深入了解,請移至 npm 文件

Visual Studio 與 npm 的整合會根據您的專案類型而有所不同。

重要

npm 會預期專案的根目錄中有 node_modules 資料夾和 package.json。 如果您應用程式的資料夾結構不同,則您應修改資料夾結構,才能使用 Visual Studio 管理 npm 套件。

CLI 型專案 (.esproj)

從 Visual Studio 2022 開始,npm 套件管理員可用於 CLI 型專案,因此您現在可以下載 npm 模組,如同您如何下載適用於 ASP.NET Core 專案的 NuGet 套件一樣。 然後,您可以使用 package.json 來修改和刪除套件。

若要開啟套件管理員,請在 [方案總管] 中以滑鼠右鍵按一下專案中的 npm 節點。

Open package manager from Solution Explorer

接下來,您可以搜尋 npm 套件、選取一個套件,然後選取 [安裝套件] 來加以安裝。

Install new npm package for esproj

Node.js 專案

如果是 Node.js 專案 (.njsproj),您可以執行下列工作:

這些功能會一起運作,並與專案系統和專案中的 package.json 檔案同步處理。

必要條件

您必須已安裝 Node.js 開發工作負載和 Node.js 執行階段,才能將 npm 支援新增至您的專案。 如需詳細步驟,請參閱建立 Node.js 和 Express 應用程式

注意

針對現有的 Node.js 專案,請使用 [從現有的 Node.js 程式碼] 解決方案範本或 [開啟資料夾 (Node.js)] 專案類型,在您的專案中啟用 npm。

從方案總管安裝套件 (Node.js)

如果是 Node.js 專案,安裝 npm 套件的最簡單方式是透過 npm 套件安裝視窗。 若要存取此視窗,請以滑鼠右鍵按一下專案中的 [npm] 節點,然後選取 [安裝新的 npm 套件]

Install new npm package for Node.js

在此視窗中,您可以搜尋套件、指定選項,並安裝。

Screenshot of the Install New npm Packages dialog.

  • 相依性類型 - 選擇 [標準]、[開發] 和 [選擇性] 套件。 [標準] 指定套件是執行階段相依性,而 [開發] 指定只有在開發期間才需要套件。
  • 新增至 package.json (建議使用)。 這個可設定的選項已被取代。
  • 選取的版本 - 選取您要安裝的套件版本。
  • 其他 npm 引數 - 指定其他標準 npm 引數。 例如,您可以輸入版本值 (例如 @~0.8) 來安裝不在版本清單中的特定版本。

您可以在 [輸出] 視窗中的 npm 輸出中看到安裝進度 (若要開啟輸出視窗,請選擇 [檢視]>[輸出] 或按 Ctrl + Alt + O)。 這可能需要一些時間。

npm output

提示

您可以在搜尋查詢前面加上感興趣範圍來搜尋範圍套件;例如,鍵入 @types/mocha 尋找 mocha 的 TypeScript 定義檔案。 而且,安裝 TypeScript 的類型定義時,您可以在 npm 引數欄位中指定版本 (例如 @ts2.6),以指定設為目標的 TypeScript 版本。

在方案總管中管理已安裝的套件 (Node.js)

npm 套件會顯示在 [方案總管] 中。 npm 節點下的項目會模擬 package.json 檔案中的相依性。

Screenshot of the npm node in Solution Explorer showing the installation status of the npm packages.

套件狀態

  • Installed package - 已安裝,並列在 package.json 中
  • Extraneous package - 已安裝,但未明確列在 package.json 中
  • Missing package- 未安裝,但列在 package.json 中

以滑鼠右鍵按一下 npm 節點,來採取下列其中一個動作:

  • 安裝新的 npm 套件 開啟 UI 以安裝新的套件。
  • 安裝 npm 套件 執行 npm install 命令以安裝 package.json 中列出的所有套件。 (執行 npm install)。
  • 更新 npm 套件 根據 package.json 中指定的語意化版本控制系統 (SemVer) 範圍,將套件更新為最新版本。 (執行 npm update --save)。 SemVer 範圍通常會使用 "~" 或 "^" 來指定。 如需詳細資訊,請參閱 package.json 設定

以滑鼠右鍵按一下套件節點來採取下列其中一個動作:

  • 安裝 npm 套件 執行 npm install 命令以安裝 package.json 中列出的套件版本。 (執行 npm install)。
  • 更新 npm 套件 根據 package.json 中指定的 SemVer 範圍,將套件更新為最新版本。 (執行 npm update --save)。SemVer 範圍通常會使用 "~" 或 "^" 來指定。
  • 解除安裝 npm 套件 解除安裝套件,並將其從 package.json 中移除 (執行 npm uninstall --save)。

注意

如需解決 npm 套件問題的協助,請參閱疑難排解

在 Node.js 互動式視窗中使用 .npm 命令 (Node.js)

您也可以在 Node.js 互動式視窗中使用 .npm 命令來執行 npm 命令。 若要開啟此視窗,請以滑鼠右鍵按一下 [方案總管] 中的專案,然後選擇 [開啟 Node.js 互動式視窗] (或按 Ctrl + KN)。

在此視窗中,您可以使用下列這類命令來安裝套件:

.npm install azure@4.2.3

提示

npm 預設會在您專案的主目錄中執行。 如果您的方案中有多個專案,則請指定以括弧括住的專案名稱或路徑。 .npm [MyProjectNameOrPath] install azure@4.2.3

提示

如果您的專案未包含 package.json 檔案,請使用 .npm init -y來以預設項目建立新的 package.json 檔案。

ASP.NET Core 專案

對於 ASP.NET Core 等專案,您可以在專案中新增 npm 支援,並使用 npm 安裝套件。

注意

針對 ASP.NET Core 專案,您也可以使用程式庫管理員或 yarn,而不是 npm 來安裝用戶端 JavaScript 和 CSS 檔案。 如果您需要與 MSBuild 或 dotnet CLI 整合以進行套件管理(npm 未提供),則可能需要使用這些選項之一。

如果您的專案尚未包含 package.json 檔案,您可以將 package.json 檔案新增至專案,以啟用 npm 支援。

  1. 若要新增 package.json 檔案,請以滑鼠右鍵按一下方案總管中的專案,然後選擇 [新增]>[新增項目] (或按 Ctrl + SHIFT + A)。 使用搜尋方塊來尋找 npm 檔案、選擇 npm 設定檔、使用預設名稱,然後按一下 [新增]

  2. package.jsondependenciesdevDependencies 區段中包含一或多個 npm 套件。 例如,您可以將下列內容新增至檔案:

    "devDependencies": {
       "gulp": "4.0.2",
       "@types/jquery": "3.5.29"
    }
    

    當您儲存檔案時,Visual Studio 會在方案總管中的 [相依性/npm] 節點下新增套件。 如果您沒有看到節點,請以滑鼠右鍵按一下 [package.json],然後選擇 [還原套件]。 若要查看套件安裝狀態,請在「輸出」視窗中選擇「npm 輸出」。

    您可以使用配置 npm 套件package.json。 直接開啟 package.json,或以滑鼠右鍵按一下方案總管中的 npm 節點,然後選擇 [開啟 package.json]

針對 npm 套件進行疑難排解

  • 如果您在建置應用程式或轉譯 TypeScript 程式碼時看到任何錯誤,請檢查 npm 套件不相容是否為潛在的錯誤來源。 若要協助識別錯誤,請在安裝套件時檢查 npm 輸出視窗,如本文先前所述。 例如,如果一個或多個 npm 套件版本已被棄用並導致錯誤,您可能需要安裝更新的版本來修復錯誤。 如需使用 package.json控制 npm 套件版本的資訊,請參閱 package.json 組態

  • 在某些 ASP.NET Core 場景中,由於此處所述的已知問題,解決方案資源管理器可能無法顯示已安裝 npm 套件的正確狀態。 例如,套件可能會在已安裝時顯示為未安裝。 在大部分情況下,您可以刪除 package.json、重新啟動 Visual Studio,然後重新新增 package.json 檔案,以更新方案總管,如本文稍早所述。 或者,安裝套件時,您可以使用 npm 的輸出視窗來驗證安裝狀態。

  • 在某些 ASP.NET Core 場景中,建置專案後,解決方案資源管理器中的 npm 節點可能不可見。 若要讓節點再次顯示,請以滑鼠右鍵按一下專案節點,然後選擇 [卸載專案]。然後以滑鼠右鍵按一下專案節點,並選擇 [重新載入專案]

  • 如果是 Node.js 專案,您必須安裝 Node.js 開發工作負載以取得 npm 支援。 npm 需要 Node.js。 如果您沒有安裝 Node.js,建議您從 Node.js 網站安裝 LTS 版本,以獲得最佳與外部架構和程式庫的相容性。