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

如果我必须安装框架项目,我必须在命令行中键入npx create-react-app my-app。

我想知道为什么Facebook在Github有npx create-react-app my-app而不是npm create-react-app my-app?


当前回答

简单的答案是

NPX:用于执行任何节点包,而无需在我们的机器上安装包。

NPM:用于在我们的机器上安装任何node js包。当我们使用NPM安装任何包时,我们可以使用"require("package-name')"。但是我们在使用NPX的时候不能导入这个包。

示例:你应该运行npm i axios 在本例中,您正在本地机器上安装axios包

NPX create-react-app 'app-name' 在这里,你直接在你的机器上执行create-react-app包,而不安装它的文件。

其他回答

NPM =>是一个JS包管理器。

NPX =>是一个执行Node包和执行npm包二进制文件的工具。

很容易记住:

-npm代表MANAGER

-npx代表EXECUTE

NPM代表节点包管理器。NPM是Node.JS的默认包管理器。它是用Javascript写的。NPM的作用是管理node.js的包和模块。

NPX代表节点包执行。NPX附带了npm,当npm安装在5.2.0版本之上时,它会自动安装。NPX是一个npm包运行器,它的作用是从注册表执行包,甚至不需要安装包。

现在NPM和NPX的区别如下:

i) NPM用于安装包,NPX用于执行包。

ii)由于npm的缘故,安装的包必须被照顾,因为它是全局安装的,而npx使用的包不需要被照顾,因为它们不是全局安装的。

另一方面,npx使用的包并不是全局安装的,所以你必须担心长期的污染。

这里有一个NPX的例子:NPX cowsay hello

如果您将其输入到bash终端,您将看到结果。这样做的好处是npx临时安装了cowsay。没有包装污染,因为cowsay不是永久安装的。这对于想要避免包装污染的一次性包装非常有用。

正如在其他回答中提到的,npx在运行前需要安装并配置包的情况下也非常有用(使用npm)。例如,不用使用npm来安装和配置json。包文件,然后调用配置的运行命令,只需使用NPX代替。一个真实的例子: create-react-app my-app

NPX是一个用于在新项目中创建和执行某些特性的工具 NPM是包含所有库的包管理器