适用范围: yes Visual Studio no Visual Studio for Mac no Visual Studio Code

可以使用 npm 来安装和管理要在 Node.js 和 ASP.NET Core 应用程序中使用的包。 使用 Visual Studio 可轻松地通过 UI 或直接与 npm 交互并发出 npm 命令。 如果不熟悉 npm 并想要详细了解,请转到 npm 文档

Visual Studio 与 npm 的集成因项目类型而异。

  • 基于 CLI 的项目 (.esproj)
  • Node.js
  • ASP.NET Core
  • 打开文件夹 (Node.js)
  • npm 在项目根目录中需要 node_modules 文件夹和 package.json 。 如果应用的文件夹结构不同,并且希望使用 Visual Studio 来管理 npm 包,则可以修改文件夹结构。

    基于 CLI 的项目 (.esproj)

    从 Visual Studio 2022 预览版 4 开始,npm 包管理器可用于基于 CLI 的项目,因此现在可以采用为 ASP.NET Core 项目下载 NuGet 包的方式下载 npm 模块。 然后可以使用 package.json 来修改和删除包。

    要打开包管理器,请在解决方案资源管理器中右键单击项目中的 npm 节点。

    接下来可以搜索 npm 包,选择一个包,然后选择“安装包”进行安装。

    Node.js 项目

    对于 Node.js 项目 (.njsproj),可以执行下列任务:

  • 从解决方案资源管理器安装包
  • 从解决方案资源管理器管理安装的包
  • 在 Node.js 交互式窗口中使用 .npm 命令
  • 这些功能协同工作,并与项目系统和项目中的 package.json 文件同步。

    需要安装“Node.js 开发”工作负载和 Node.js 运行时,以便将 npm 支持添加到项目 。 有关详细步骤,请参阅 创建 Node.js 和 Express 应用

    对于现有的 Node.js 项目,请使用“基于现有 Node.js 代码”解决方案模板或 Open folder (Node.js) 项目类型来在项目中启用 npm 。

    从解决方案资源管理器安装包 (Node.js)

    对于 Node.js 项目,安装 npm 包的最简单方法是通过 npm 包安装窗口。 若要访问此窗口,右键单击项目中的“npm”节点并选择“安装新的 npm 包” 。

    在此窗口中可以搜索包、指定选项并安装。

  • 依赖项类型 - 在“标准”、“开发”和“可选”包间进行选择 。 “标准”指定包是一个运行时依赖项,而“开发”指定只在开发过程中需要包。
  • 添加到 package.json - 建议。 此可配置选项已被弃用。
  • 所选版本 - 选择你想要安装的包版本。
  • 其他 npm 参数 - 指定其他标准参数。 例如,可以输入版本值(如 @~0.8 ),安装版本列表中不可用的特定版本。
  • 可以在“输出”窗口的 npm 输出中查看安装进度(若要打开此窗口,请依次选择“视图”>“输出”,或按 Ctrl + Alt + O)。 这可能需要一些时间。

    可以在搜索查询前添加感兴趣的范围,进而搜索范围内的包,例如键入 @types/mocha 来查找 mocha 的 TypeScript 定义文件。 此外,安装 TypeScript 的类型定义时,可以在 npm 参数字段中添加 @ts2.6 ,指定要面向的 TypeScript 版本。

    在解决方案资源管理器中管理安装的包 (Node.js)

    npm 包显示在解决方案资源管理器中。 “npm”节点下的条目模拟 package.json 文件中的依赖项 。

  • 已安装的包 - 已安装并列在 package.json 中
  • 无关包 - 已安装但未显式列在 package.json 中
  • 缺失的包 - 未安装但列在 package.json 中
  • 右键单击 npm 节点,执行以下操作之一 :

  • 安装新的 npm 包 打开 UI 以安装新的包。
  • 安装 npm 包 运行 npm 安装命令以安装 package.json 中列出的所有包 。 (运行 npm install 。)
  • “更新 npm 包”根据 package.json 中指定的语义版本控制 (SemVer) 范围,将包更新到最新版本。 (运行 npm update --save 。)。 通常使用“~”或“^”指定 SemVer 范围。 有关详细信息,请参阅 package.json 配置
  • 右键单击包节点,执行以下操作之一:

  • 安装 npm 包 运行 npm 安装命令以安装 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 + K、N)。

    在窗口中,可以使用如下命令来安装包:

    .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 安装包。

  • 向项目添加 npm 支持
  • 使用 package.json 安装包
  • 对于 ASP.NET Core 项目,还可以使用 库管理器 或 yarn(而非 npm)来安装客户端 JavaScript 和 CSS 文件。

    向项目添加 npm 支持 (ASP.NET Core)

    如果你的项目尚未包含 package.json 文件,则可以为其添加一个 package.json 文件以启用 npm 支持 。

  • 如果你尚未安装 Node.js,建议从 Node.js 网站安装 LTS 版本,以实现与外部框架和库的最佳兼容性。

    npm 需要 Node.js。

  • 若要添加 package.json 文件,请在“解决方案资源管理器”中右键单击项目,然后依次选择“添加”>“新项”(或按 Ctrl + Shift + A)。 使用搜索框查找 npm 文件,选择“npm 配置文件”,使用默认名称,然后单击“添加”。

    如果看不到列出的 npm 配置文件,则不会安装 Node.js 开发工具。 可以使用 Visual Studio 安装程序添加“Node.js 开发”工作负载 。 然后重复执行上一步骤。

  • 在 package.json 的 dependencies devDependencies 部分中添加一个或多个 npm 包 。 例如,可以向文件添加以下内容:

    "devDependencies": {
       "gulp": "4.0.2",
       "@types/jquery": "3.3.33"
    

    保存文件时,Visual Studio 会将包添加到解决方案资源管理器中的“依赖项/npm”节点下 。 如果未显示该节点,请右键单击“package.json”并选择“还原包” 。

    在某些情况下,解决方案资源管理器可能无法正确显示已安装 npm 包的状态。 有关详细信息,请参阅疑难解答

    使用 package.json 安装包 (ASP.NET Core)

    对于包含 npm 的项目,可以使用 package.json 配置 npm 包。 直接打开 package.json 或右键单击解决方案资源管理器中的 npm 节点,并选择“打开 package.json”。

    package.json 中的 IntelliSense 可帮助选择特定版本的 npm 包 。

    保存文件时,Visual Studio 会将包添加到解决方案资源管理器中的“依赖项/npm”节点下 。 如果未显示该节点,请右键单击“package.json”并选择“还原包” 。

    安装包可能需要几分钟的时间。 通过在“输出”窗口中切换到“npm”输出来查看包的安装进度 。

    npm 包疑难解答

  • npm 需要 Node.js。 如果你尚未安装 Node.js,建议从 Node.js 网站安装 LTS 版本,以实现与外部框架和库的最佳兼容性。

  • 对于 Node.js 项目,必须为 npm 支持安装“Node.js 开发”工作负载 。

  • 在某些情况下,由于此处所述的已知问题,解决方案资源管理器可能无法正确显示已安装 npm 包的状态。 例如,在安装包时,可能会显示为未安装。 在大多数情况下,可以通过删除 package.json,重启 Visual Studio 并重新添加 package.json 文件来更新解决方案资源管理器,如本文前面所述 。 也可在安装包时使用“npm 输出”窗口来验证安装状态。

  • 在某些 ASP.NET Core 方案中,在生成项目后,解决方案资源管理器中的 npm 节点可能不可见。 若要使节点再次可见,请右键单击项目节点,然后选择“卸载项目”。然后右键单击项目节点,并选择“重新加载项目”。

  • 如果在生成应用或转译 TypeScript 代码时看到任何错误,请检查 npm 包是否由于潜在错误源而不兼容。 若要帮助识别错误,请在安装包时检查“npm 输出”窗口,如本文前面所述。 例如,如果所使用的一个或多个 npm 包版本是已弃用的版本,并导致发生错误,则可能需要安装较新版本以消除错误。 有关使用 package.json 控制 npm 包版本的信息,请参阅 package.json 配置

  •