什么是npx第一次见到npx命令是在babel文档中注意:如果没有package.json,安装前先创建一个。这样可以保证与npx命令的交互正常。在我自己的机器上试了一下,确实有这个命令,于是查看了npm官方资料,发现npmv5.2.0中引入了这个命令(链接)。引入该命令的目的是为了提高开发者使用软件包中提供的命令行工具的体验。为什么引入这个命令?比如我们开发中需要运行parcel命令打包:parcelindex.html。以前有几种方式:全局安装parcel,但有时不同的项目使用不同的版本。不允许全局包,只能考虑以下方式使用npmscripts,在package.json中添加脚本"scripts":{"start":"parcelindex.html"}将node_modules的可执行目录添加到PATH中,别名npmx=PATH=$(npmbin):$PATHnpmxparcelindex.html指定可执行命令路径/node_modules/.bin/parcelindex.html既然有了npx命令,就不用考虑上面的方法了(其实npx就是对方法3的封装)。当我们执行npxparcelindex.html时,会自动在./node_modules/.bin目录下搜索。npx还允许我们无需安装即可执行单个命令。例如,命令npxcreate-react-appmy-cool-new-app会临时安装create-react-app包。命令执行完成后,create-react-app会被删除。掉线,不会出现在全局。下次再执行,还是会临时安装一遍。
