npx 和 npm 之间的区别是什么?

Number of views 64

刚开始学习 React,Facebook 通过提供以下现成的项目来简化初始设置,挺有帮助的。

如果我要安装骨架模板项目,我需要在命令行中输入 npx create-react-app my-app。

我在想为什么 GitHub 上 Facebook 团队使用的是 npx create-react-app my-app 而不是 npm create-react-app my-app?

1 Answers

npmnpx 都是 Node.js 包管理器 npm(Node Package Manager)的一部分,但它们的功能和用途有所不同。

  1. npm (Node Package Manager):

    • npm 主要用于安装、更新、卸载和管理 Node.js 项目中的包(即库或工具)。
    • 例如,你可以使用 npm install 来安装一个包,并将其添加到项目的 package.json 文件中。
    • 你也可以使用 npm install <package-name> -g 来全局安装一个包。
  2. npx (Node Package Runner):

    • npx 是 npm 5.2.0 版本后引入的一个工具,主要用于运行某个包中的可执行文件,而无需全局安装该包。
    • 它会临时下载并运行指定的包,而不需要全局安装该包。这使得 npx 在某些情况下更加方便,因为你不需要担心全局环境的问题。
    • 例如,npx create-react-app my-app 会临时下载 create-react-app 包并运行它,从而创建一个新的 React 应用程序。

回到你的问题,npx create-react-app my-app 的使用是因为 create-react-app 是一个 CLI 工具,通常不建议全局安装。通过 npx,你可以直接运行这个工具而不需要担心全局安装的问题。这使得安装过程更加简单和一致。

总结: - 如果你需要频繁使用某个包,或者希望将该包作为开发依赖项安装在项目中,你应该使用 npm。 - 如果你只需要临时运行某个包中的命令,或者不希望全局安装该包,你应该使用 npx