npm 与 npx 的区别

409 阅读2分钟

NPX和NPM之间的区别

  • NPM(Node Package Manager) 是一个包管理器,但它不太擅长执行(运行)包。
  • NPX(Node Package Execute) 是一个内置于 NPM 的包运行器 CLI 工具(从 NPM 版本 5.2 开始)。

与NPM不同,NPX擅长执行软件包

实际 NPX 与 NPM 示例

假设你想学习如何使用ReactJS,所以你去ReactJS官方网站并按照他们的指示进行操作。

您会注意到,ReactJS 的官方文档建议您使用此 NPX 命令来安装和运行 create-react-app:

npx create-react-app project-name

原因是 NPX 确保你使用最新版本的包运行 React 应用程序,而 NPM 则不会。

因为 create-react-app 经常更新,通常建议使用最新的软件包版本。

如果使用 全局安装 create-react-app,则必须在每次更新包/依赖项时手动更新项目。NPX会自动为您完成。npm install

NPX的主要特点

以下是使用 npx 代替 npm(或 yarn)运行包的主要特性和优势的概述:

  • NPX 允许您通过在您的机器上临时缓存包来快速运行和测试 Node 包,而无需在全局或本地安装它们。
  • NPX 会自动为您安装缺少的 npm 包/依赖项。
  • 当您运行 npx package 命令时,NPX 会自动在项目中安装最新版本的包。
  • NPX 允许您在不同的项目上运行同一包的不同版本。例如,如果一个项目仅适用于 Node v 11.1,而另一个项目仅适用于 Node v 11.5,则 NPX 使该过程变得轻松。

NPM不会为您做任何这些事情,如果没有NPX,您将不得不手动执行所有操作。

什么时候不应该使用 NPX?

你不应该在一个项目中使用 NPX,因为你的 NPM 包版本暂时保持不变是很重要的。换句话说,如果您想手动控制何时更新特定的包/依赖项,请使用 npm(或 yarn)命令。