Javascript npx和npm之间的区别?
我刚刚开始学习React,Facebook通过提供 如果我必须安装框架项目,我必须在命令行中键入Javascript npx和npm之间的区别?,javascript,npm,npx,Javascript,Npm,Npx,我刚刚开始学习React,Facebook通过提供 如果我必须安装框架项目,我必须在命令行中键入npx create react app my app 我想知道为什么Github中的Facebook有npx create react app my app而不是npm create react app my app?npx是npm包运行程序(x可能代表eXecute)。典型的用途是临时下载并运行一个包或进行试用 create react app是一个npm包,预计在项目生命周期中只运行一次。因此,
npx create react app my app
我想知道为什么Github中的Facebook有npx create react app my app
而不是npm create react app my app
?npx是npm包运行程序(x可能代表eXecute)。典型的用途是临时下载并运行一个包或进行试用
create react app是一个npm包,预计在项目生命周期中只运行一次。因此,最好使用npx一步安装和运行它
如主页中所述,默认情况下,npx可以在路径中或从node_modules/.bin运行命令
注意:
通过一些挖掘,我们可以发现create-react-app指向在节点环境中执行的Javascript文件(在Linux系统上可能指向/usr/lib/node_modules/create-react-app/index.js)。这只是一个进行一些检查的全局工具。实际的设置是由react脚本完成的,其最新版本安装在项目中。有关更多信息,请参阅。NPX:
发件人:
Web开发人员可以在他们的开发中有几十个项目
并且每个项目都安装了自己的特定npm集
依赖关系。几年前,处理CLI的常见建议
Grunt或Gulp等应用程序需要在每个应用程序中本地安装它们
项目,也可以全局执行,以便可以轻松地从命令运行它们
线路
但在全球范围内安装会带来与解决问题一样多的问题。项目
可能取决于命令行工具的不同版本,以及
具有大量特定于开发的CLI工具的操作系统不是
也很好。如今,大多数开发人员更喜欢在本地安装工具
就这样吧
本地版本的工具允许开发人员从GitHub中提取项目
无需担心与全球安装的
工具的版本。NPM只需安装本地版本,您就可以了
外带。但特定于项目的安装并非没有它们的功能
问题:您如何在没有任何问题的情况下运行正确版本的工具
指定其在项目中的确切位置或使用
别名
这就是npx解决的问题。NPM 5.2中包含的新工具npx是
一个小的实用程序,它足够聪明,可以在需要时运行正确的应用程序
它是从项目内部调用的
例如,如果您想运行项目本地版本的mocha,
您可以在项目内部运行npx mocha,它会做您想做的事情
期待
npx的一个有用的副作用是它将自动安装npm
尚未安装的软件包。因此,作为该工具的创建者Kat
Marchán指出,你可以经营npx benny hill而无需交易
本尼·希尔污染了全球环境
如果你想使用npx,更新到最新版本
新产品管理公司
NPM
-管理包,但执行任何包都不容易。NPX
-执行节点包的工具。
NPX
与NPM
版本5.2+
NPM本身并不简单地运行任何包。事实上,它不运行任何包。如果要使用NPM运行包,必须在package.json
文件中指定该包
通过NPM软件包安装可执行文件时,NPM会链接到它们:
本地安装在/node\u modules/.bin/
目录下创建了“链接”
全局安装具有从Linux上的全局bin/
目录(例如/usr/local/bin
)或Windows上的%AppData%/npm
创建的“链接”
NPM:
可以在特定项目上本地安装程序包:
npm install some-package
现在让我们假设您希望NodeJS从命令行执行该包:
$ some-package
上述操作将失败。只有全局安装的软件包才能通过键入其名称来执行
要修复此问题并使其运行,必须键入本地路径:
$ ./node_modules/.bin/some-package
通过编辑packages.json
文件并将该包添加到scripts
部分,您可以从技术上运行本地安装的包:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
然后使用(或npm run
)运行脚本:
净现值:
npx
将检查
是否存在于$PATH
或本地项目二进制文件中,并执行它。因此,对于上面的示例,如果您希望执行本地安装的包some-package
,则只需键入:
npx some-package
npx的另一个主要优点是能够执行以前未安装的包:
$ npx create-react-app my-app
上面的示例将在命令运行的路径内生成一个react
app样板文件,并确保您始终使用生成器或构建工具的最新版本,而无需每次使用它时进行升级
用例示例:
npx
命令可能对package.json
文件的script
部分有所帮助,
当不需要定义可能不常用的依赖项或任何其他原因时:
“脚本”:{
“开始”:“npxgulp@3.9.1",
“服务”:“npx http服务器”
}
呼叫:npm运行服务
相关问题:
这里有一个NPX的例子:NPX cowsay hello
如果将其输入bash终端,您将看到结果。这样做的好处是npx临时安装了cowsay。因为cowsay不是永久安装的,所以没有包装污染。这是伟大的一次性包装w
$ npx create-react-app my-app
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