什么是 npm

2025年6月14日 | 阅读 8 分钟

npmNode Package Manager 的简称,它是世界上最大的软件注册中心。全球的开源 Web 项目开发者使用它来共享获取软件包。npm 还充当 Node.js 项目的命令行工具,用于在项目中安装包、依赖管理,甚至版本管理。

npm 的组成部分

npm 主要由三个不同的组成部分构成,它们是:

  1. 网站: npm 官方 网站 用于查找项目的包,创建和设置个人资料以管理和访问私有和公共包。
  2. 命令行界面 (CLI): CLI 在计算机的终端中运行,用于与 npm 包和存储库进行交互。
  3. 注册表: 注册表是一个大型公共的 JavaScript 项目和元信息数据库。你可以使用任何支持的 npm 注册表,或者甚至是你自己的。你也可以根据他人的使用条款来使用他们的注册表。

安装 npm (Node.js 和 npm)

npm 是与 Node.js 一起提供的,这意味着你必须安装 Node.js 才能在你的个人电脑上自动安装 npm。有两种不同的方法可以在计算机上安装 npm。

  1. 使用 nvm (Node 版本管理器)
  2. 使用 Node 安装程序

强烈建议使用 nvm (Node 版本管理器) 来安装 npm,而不是使用 Node 安装程序。Node 安装过程会将 npm 安装在允许本地权限的目录中,当你尝试全局运行 npm 包时,它会生成错误消息。

1. 使用 nvm 安装 npm 和 Node.js

npm 强烈建议使用 Node 版本管理器在你的设备上安装 npm 和 Node.js。通过 nvm 安装 Node.js 允许在你的计算机上安装不同版本的 Node.js,你可以通过根据你的需求切换来为你的项目使用任何 Node.js 版本。他们不建议使用Node 安装程序来安装 npm 和 Node.js。

要下载并在 Linux 操作系统上使用 nvm 安装 npm,请打开 https://github.com/nvm-sh/nvm

  1. 如果我们使用的是 Windows OS 设备,我们将从 Git 链接下载 Windows 的 nvm-setup.zip 文件。
  2. 下载后,运行安装程序并按照屏幕上显示的安装说明进行操作。
    What is npm
  3. 双击运行安装程序,或者右键单击并选择以管理员身份运行
  4. 点击按钮以允许安装。
  5. 仔细阅读其许可协议,如果你同意,则接受并点击下一步按钮。
    What is npm
  6. 选择你想安装 NVM 的目标位置,然后点击下一步按钮。我们将其保留为默认选定的位置。
    What is npm
  7. 选择安装程序将创建符号链接的文件夹位置,然后点击下一步按钮。
    What is npm
  8. 现在,你的安装程序已准备好进行安装,点击安装按钮开始安装过程。
    What is npm
  9. 现在,nvm-setup 已安装在你的个人电脑上,还需要几秒钟等待安装完成。
    What is npm
  10. 你的 nvm 安装设置已完成;点击完成按钮退出设置。
    What is npm

检查 nvm 版本

安装完 nvm 设置后,请确保是否已安装或安装了哪个版本的 nvm。为此,请在你的终端中运行以下命令:

上面的命令会显示你设备上运行的 nvm 版本以及其他 nvm 命令及其简短描述。

What is npm

你也可以使用命令:nvm version 来检查 nvm 版本。

检查可使用 nvm 安装的 Node.js 列表

要查找可使用 nvm 安装的 Node.js 版本,请使用以下命令。它将显示 Node.js 版本的部分可用列表。


What is npm

在上列表中,CURRENT 指的是当前 Node.js 版本,LTS 指的是长期支持版本。

安装 Node.js 和 npm

你可以选择任何要安装的 Node.js 版本;我们为我们的机器安装 LTS 14.15.4。只需运行以下命令来安装 Node.js:


What is npm

此命令会根据你的设备,一起安装 Node.js (64 位或 32 位) 和 npm。

检查 Node.js 和 npm 的版本

要使用 Node.js,请使用命令nvm use 14.15.4 (请确保将 14.15.4 替换为你已安装的版本)。

之后,在你的终端中运行命令node -vnpm -v,分别检查 Node.js 和 npm 的版本。


What is npm

检查已安装的 Node.js 版本列表。

你还可以使用以下命令检查安装在计算机上的 Node.js 版本总数。


What is npm

目前,我们在设备上运行 Node.js 版本 (14.15.4)。如果需要,我们也可以在计算机上安装更多不同的 Node.js 版本 (在构建基于不同版本的另一个 Node.js 项目时)。要安装另一个版本的 Node.js,请从可用的 nvm 列表中选择一个版本并运行以下命令。


What is npm

在这里,我们选择了另一个 Node 版本 12.20.2 进行安装,它也会在我们的设备上下载并安装兼容的 npm。

现在,我们有了两个不同版本的 Node.js 和 npm。要检查已安装 Node.js 版本的总数,请运行以下命令:


What is npm

现在,我们的计算机上有了两个不同版本的 Node.js 和 npm。

2. 使用 Node 安装程序安装 npm 和 Node.js

如果你无法安装,或者在设备上使用Node 版本管理器安装 npm 时遇到一些困难。在设备上安装 npm 和 Node.js 的另一种方法是使用Node.js 安装程序

导航到 Node.js 下载部分,在那里你会找到适用于不同操作系统的 Node.js 安装程序,可以一起安装 Node.js 和 npm。

What is npm

根据你的计算机操作系统和位数,下载任何支持的 Node.js 安装程序。

  1. 我们使用的是 Windows 64 位操作系统,我们正在为我们的设备下载 64 位 Node.js 安装程序。
  2. 下载后,运行安装程序并按照屏幕上显示的安装说明进行操作。
    What is npm
  3. 点击下一步按钮开始安装过程。
    What is npm
  4. 阅读最终用户许可协议,接受它并点击下一步按钮。
    What is npm
  5. 选择 Node.js 的自定义安装位置,然后点击下一步进行安装。我们将其保留为默认位置。
    What is npm
  6. 选择要安装的 Node.js 功能,然后点击下一步。我们将其保留为提供的默认功能。
    What is npm
  7. 如果你想安装一些其他必要的工具 (C/C++, Chocolaty) 和你的 node.js 和 npm 一起安装,请勾选复选框,然后点击下一步按钮。
    What is npm
  8. 现在,点击安装按钮来安装 Node.js,它也会在你的设备上安装 npm。
    What is npm
  9. 在弹出窗口中点击以安装 Node.js。
  10. 点击完成按钮以完成安装。
    What is npm

附加工具已准备就绪,正如我们上面所标记的,将自动安装附加工具。按任意键继续。

What is npm

在命令行运行以下命令以下载最新版本的 npm。

npm 的属性

  • 所有npm 包都定义在名为 package.json 的文件中。
  • 你必须用JSON编写package.json的内容。
  • 在定义文件中至少必须有两个字段:nameversion

package.json

当我们运行npm init来使用开发者提供的基本元数据初始化 JavaScript/Node.js 项目时,package.json 文件就会生成。

name: 这是你的 JavaScript 库/项目的名称。

version: 这是你的项目版本。

description: 传递项目的描述信息。

license: 这是项目的许可证。

何时使用 npm

  • 使用 npm 来适配你应用的软件包,或者直接采用现有的软件包。
  • 当你想要立即下载独立工具时,可以使用 npm。
  • 使用 npx 运行软件包而无需下载。
  • 当你想要与任何 npm 用户(无论在哪里)共享代码时,可以使用 npm。
  • 当你想要限制代码给特定开发者时,可以使用 npm。
  • 使用 npm 创建组织来协调包的维护、编码和开发者。
  • 使用 npm 管理代码和代码依赖的多个版本。
  • 当底层代码更新时,使用 npm 可以轻松更新应用程序。
  • 当你正在寻找正在处理类似问题和项目的其他开发者时,使用 npm。

命令行客户端

npm 包含一个 CLI (命令行客户端),可用于下载和安装 npm 包 (软件)。

Windows 操作系统示例

Mac OS 示例

发布包

只要目录包含 package.json 文件,你就可以将计算机上的任何目录发布。

检查 npm 是否已安装

检查你是否已登录

如果没有,则登录

导航到你的项目并发布你的项目

全局安装包

目前为止,我们只全局安装了一个包,那就是 npm 包本身。那么,让我们更改它并安装另一个包 UglifyJS (一个 JavaScript 最小化工具)。这里,我们使用 --global 标志,但它可以缩写为 -g


What is npm

查看上面的输出屏幕;在全局模式下又安装了一个额外的包。这是 UglifyJS 的依赖项。

本地安装包

当我们通常本地安装任何包时,我们通常使用 package.json 文件。让我们看一个在我们的主目录中创建项目文件夹的示例:

按 Enter 键以默认值创建 package.json,然后再次用命令 "yes" 确认 .json 是否正确。这将在项目的根目录下创建一个 package.json 文件。


What is npm

卸载本地包

由于 npm 是一个包管理器,可以随时进行操作,因此我们也可以删除或卸载包。假设当前安装的包 packageName 导致了兼容性问题。因此,我们将删除这个包并安装一个旧版本。

安装特定版本的包

现在,我们可以安装我们想要的特定版本的 packageName 包。我们可以通过使用 @ 符号来附加版本号来实现。

正如我们所见,有几种方法可以运行 npm 命令。下面是一些常用 npm 命令 (或别名) 的简要列表:

  • npm i: 安装本地包
  • npm i -g: 安装全局包
  • npm un: 卸载本地包
  • npm up: npm 更新包
  • npm t: 运行测试
  • npm ls: 列出已安装的模块
  • npm ll 或 npm la: 在列出模块时打印额外的包信息