我刚刚开始学习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包运行器(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。
NPX:
从https://www.futurehosting.com/blog/npx-makes-life-easier-for-node-developers-plus-node-vulnerability-news/:
Web developers can have dozens of projects on their development machines, and each project has its own particular set of npm-installed dependencies. A few years back, the usual advice for dealing with CLI applications like Grunt or Gulp was to install them locally in each project and also globally so they could easily be run from the command line. But installing globally caused as many problems as it solved. Projects may depend on different versions of command line tools, and polluting the operating system with lots of development-specific CLI tools isn’t great either. Today, most developers prefer to install tools locally and leave it at that. Local versions of tools allow developers to pull projects from GitHub without worrying about incompatibilities with globally installed versions of tools. NPM can just install local versions and you’re good to go. But project specific installations aren’t without their problems: how do you run the right version of the tool without specifying its exact location in the project or playing around with aliases? That’s the problem npx solves. A new tool included in NPM 5.2, npx is a small utility that’s smart enough to run the right application when it’s called from within a project. If you wanted to run the project-local version of mocha, for example, you can run npx mocha inside the project and it will do what you expect. A useful side benefit of npx is that it will automatically install npm packages that aren’t already installed. So, as the tool’s creator Kat Marchán points out, you can run npx benny-hill without having to deal with Benny Hill polluting the global environment. If you want to take npx for a spin, update to the most recent version of npm.
介绍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 cowsay hello
如果您将其输入到bash终端,您将看到结果。这样做的好处是npx临时安装了cowsay。没有包装污染,因为cowsay不是永久安装的。这对于想要避免包装污染的一次性包装非常有用。
正如在其他回答中提到的,npx在运行前需要安装并配置包的情况下也非常有用(使用npm)。例如,不用使用npm来安装和配置json。包文件,然后调用配置的运行命令,只需使用NPX代替。一个真实的例子: create-react-app my-app
npm - JavaScript包管理器,就像:pip (Python), Maven (Java), NuGet (.NET), Composer (PHP), RubyGems (Ruby),…
NPX—运行包的命令而不显式地安装它。
用例:
您不希望既全局安装包,也不希望在本地安装包。 您没有全局安装它的权限。 只是想测试一些命令。 有时,您希望在包中有一个脚本命令(生成、转换某些东西……)。Json来执行一些东西,而不需要将这些包作为项目的依赖项安装。
语法:
npx [options] [-p|--package <package>] <command> [command-arg]...
软件包可选:
npx -p uglify-js uglifyjs --output app.min.js app.js common.js
+----------------+ +--------------------------------------------+
package (optional) command, followed by arguments
例如:
Start a HTTP Server : npx http-server
Lint code : npx eslint ./src
# Run uglifyjs command in the package uglify-js
Minify JS : npx -p uglify-js uglifyjs -o app.min.js app.js common.js
Minify CSS : npx clean-css-cli -o style.min.css css/bootstrap.css style.css
Minify HTML : npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace
Scan for open ports : npx evilscan 192.168.1.10 --port=10-9999
Cast video to Chromecast : npx castnow http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4
更多关于命令的内容:
https://docs.npmjs.com/files/package.json#bin https://github.com/mishoo/UglifyJS2/blob/master/package.json#L17
NPM是一个包管理器,你可以使用NPM安装node.js包
NPX是一个执行node.js包的工具。
无论您是在全局还是本地安装该包。NPX将临时安装并运行它。如果你配置了一个包,NPM也可以运行一个包。Json文件,并包括在脚本部分。
所以请记住,如果您想快速检查/运行一个节点包,而不需要在本地或全局安装,请使用NPX。
npM -经理
npX -执行-容易记住
实际上,我尝试了很多方法来解决这个问题,但都失败了,最终全局删除/删除yarn解决了这个问题
只需在命令行终端输入以下命令:
NPM卸载yarn
然后运行下面的命令来安装react starter项目
npx create-react-app
简单的定义:
NPX
npx代表节点包执行,它随npm而来, 当你在5.2.0版本以上安装NPM时,NPX会自动自动的 安装。它是一个npm包运行器,可以执行任何包 你想从NPM注册表中得到的,甚至不需要安装它 包中。
NPM
npm是JavaScript编程语言的包管理器 的默认包管理器 JavaScript运行时环境。它由一个命令行组成 客户端,也叫npm,是一个公共和付费的在线数据库 私人包
NPM: NPM代表Node包管理器,是Node.js的默认包管理器。它由Isaac Z. Schlueter开发,最初发布于2010年1月12日。它完全是用JavaScript编写的。它由一个命令行客户端npm组成,用于管理所有node.js包和模块。当node.js被安装时,它被包含在安装中。
npm run your-package-name
NPX是一个用于执行包的工具。
NPX是npm的首字母缩写,NPX包是npm自带的,所以当你在5.2.0以上安装npm时,NPX会自动安装。
它是一个npm包运行器,可以从npm注册表中执行任何你想要的包,甚至不需要安装那个包。npx在单次使用包中非常有用。如果你在5.2.0以下安装了npm,那么npx不会安装在你的系统中。
执行以下命令确定是否安装了npx:
npx -v
如果未安装npx,则可以执行以下命令。
npm install -g npx
使用npx执行包:
npx your-package-name
NPM =>是一个JS包管理器。
NPX =>是一个执行Node包和执行npm包二进制文件的工具。
很容易记住:
-npm代表MANAGER
-npx代表EXECUTE
简单的答案是
NPX:用于执行任何节点包,而无需在我们的机器上安装包。
NPM:用于在我们的机器上安装任何node js包。当我们使用NPM安装任何包时,我们可以使用"require("package-name')"。但是我们在使用NPX的时候不能导入这个包。
示例:你应该运行npm i axios 在本例中,您正在本地机器上安装axios包
NPX create-react-app 'app-name' 在这里,你直接在你的机器上执行create-react-app包,而不安装它的文件。
NPM是用来安装包的工具,NPX是用来执行包的工具。 如果你想通过npm运行一个包,那么你必须在你的包中指定这个包。并在本地安装它。 npx-一个包不需要安装就可以执行。它是一个npm包运行器,所以如果任何包还没有安装,它会自动安装它们。
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文件。 您可以直接从命令行执行该工具。
NPM与NPX的区别如下:
i) NPM用于安装包,NPX用于执行包。
ii)由于npm的缘故,安装的包必须被照顾,因为它是全局安装的,而npx使用的包不需要被照顾,因为它们不是全局安装的。
NPM vs NPX
NPM代表节点包管理器。一个基于文本的Nodejs包管理程序。
而NPX是一个节点包运行器。它的功能是执行Nodejs包
NPX将执行Nodejs包中的二进制文件,无论是否安装。
甚至NPX也可以帮助我们使用某些版本的Nodejs,而不必使用nvm (node.js版本管理)、nave (node.js虚拟环境)和nvm (node.js版本管理)。
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使用的包不需要被照顾,因为它们不是全局安装的。