我刚刚开始学习React, Facebook通过提供以下现成的项目来帮助简化初始设置。
如果我必须安装框架项目,我必须在命令行中键入npx create-react-app my-app。
我想知道为什么Facebook在Github有npx create-react-app my-app而不是npm create-react-app my-app?
我刚刚开始学习React, Facebook通过提供以下现成的项目来帮助简化初始设置。
如果我必须安装框架项目,我必须在命令行中键入npx create-react-app my-app。
我想知道为什么Facebook在Github有npx create-react-app my-app而不是npm create-react-app my-app?
当前回答
介绍npx:一个npm包运行器
NPM -管理包,但不容易执行任何包。NPX -用于执行Node包的工具。
NPX与NPM 5.2+版本捆绑在一起
NPM本身不能简单地运行任何包。事实上,它不运行任何包。如果你想使用NPM运行一个包,你必须在你的包中指定这个包。json文件。
当可执行文件通过NPM包安装时,NPM会链接到它们:
本地安装在。/node_modules/.bin/目录下创建了“链接”。 在Linux上的全局bin/目录(例如/usr/local/bin)或Windows上的%AppData%/npm中创建了“链接”。
你应该阅读的文档
NPM:
你可以在某个项目上本地安装一个包:
npm install some-package
现在假设你想让NodeJS从命令行执行这个包:
$ some-package
上述操作将失败。只有全局安装的包可以通过只输入它们的名称来执行。
要修复这个问题,并让它运行,你必须输入本地路径:
$ ./node_modules/.bin/some-package
从技术上讲,您可以通过编辑您的包来运行本地安装的包。Json文件,并将该包添加到脚本部分:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
然后使用npm run-script(或npm run)运行脚本:
npm run some-package
NPX:
npx将检查<命令>是否存在于$PATH或本地项目二进制文件中,并执行它。因此,对于上面的例子,如果你想要执行本地安装的包some-package,你所需要做的就是输入:
npx some-package
npx的另一个主要优势是能够执行之前没有安装的包:
$ npx create-react-app my-app
上面的例子将在命令运行的路径中生成一个react应用样板,并确保您总是使用最新版本的生成器或构建工具,而不必在每次使用它时升级。
用例的例子:
NPX命令在包的脚本部分可能会有帮助。json文件, 当不需要定义一个可能不常用或出于其他原因的依赖项时:
"scripts": {
"start": "npx gulp@3.9.1",
"serve": "npx http-server"
}
调用:npm运行服务
相关问题:
如何使用本地安装在node_modules中的包? NPM:如何source ./node_modules/.bin文件夹? 如何使用npm脚本运行js文件?
其他回答
简单的定义:
NPX
npx代表节点包执行,它随npm而来, 当你在5.2.0版本以上安装NPM时,NPX会自动自动的 安装。它是一个npm包运行器,可以执行任何包 你想从NPM注册表中得到的,甚至不需要安装它 包中。
NPM
npm是JavaScript编程语言的包管理器 的默认包管理器 JavaScript运行时环境。它由一个命令行组成 客户端,也叫npm,是一个公共和付费的在线数据库 私人包
npx是一个npm包运行器(x可能代表eXecute)。使用npx的一种常见方法是下载并临时运行一个包或进行试用。
Create-react-app是一个NPM包,预计在项目的生命周期中只运行一次。因此,最好使用npx在一个步骤中安装和运行它。
正如主页https://www.npmjs.com/package/npx中提到的,默认情况下,npx可以在PATH或node_modules/.bin中运行命令。
注意: 通过深入研究,我们可以发现create-react-app指向一个在节点环境中执行的Javascript文件(在Linux系统中可能是/usr/lib/node_modules/create-react-app/index.js)。这只是一个执行一些检查的全局工具。实际的设置由react-scripts完成,其最新版本安装在项目中。更多信息请参考https://github.com/facebook/create-react-app。
NPM vs NPX
NPM代表节点包管理器。一个基于文本的Nodejs包管理程序。
而NPX是一个节点包运行器。它的功能是执行Nodejs包
NPX将执行Nodejs包中的二进制文件,无论是否安装。
甚至NPX也可以帮助我们使用某些版本的Nodejs,而不必使用nvm (node.js版本管理)、nave (node.js虚拟环境)和nvm (node.js版本管理)。
NPM与NPX的区别如下:
i) NPM用于安装包,NPX用于执行包。
ii)由于npm的缘故,安装的包必须被照顾,因为它是全局安装的,而npx使用的包不需要被照顾,因为它们不是全局安装的。
NPM代表节点包管理器。 它预装在Node.js中。NPM有助于将项目中的包作为依赖项来管理。
在使用NPM时,有两种方法将包安装到本地计算机中。
本地:当一个包在本地安装时,它被安装在 ./node_modules/.bin/ 全局:在用户环境中安装全局包 路径。Linux为“/usr/local/bin”,Windows为“AppData%/npm”。
要执行本地安装的包,应该在包中指定。Json脚本块如下所示。
"scripts": {
"your-package": "your-package-name"
}
然后,你可以执行这个包:
npm run your-package-name
NPX是一个NPM包执行器。 目前,当你安装NPM 5.2.0或更高版本时,NPX与NPM捆绑在一起。
为什么NPX胜过NPM?
不需要编辑包。带有node_modules路径的Json文件。 您可以直接从命令行执行该工具。