安装
npm 从5.2版开始,增加了 npx 命令。
Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下。
$ npm install -g npx
主要使用场景
调用项目安装的模块
npx 想要解决的主要问题,就是调用项目内部安装的模块。
我们在项目下安装的cli一般只能在package.json的scripts字段中调用,或者是在项目脚本中调用。
{// ..."scripts": {"creatApp": "create-react-app xxx"}}
如果想在命令行中去调用:
node-modules/.bin/xxx --version
有了npx,我们调用内部模块就变得简单了:
npx xxx --version
它的原理是在运行的时候到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在。
避免全局安装模块
使用create-react-app之前,我们需要把它安装到全局。
有了npx,可以不用全局安装,直接使用
$ npx create-react-app myApp
允许指定版本
$ npx uglify-js@3.1.0 main.js -o ./dist/main.js
上面代码运行时,npx如果在本地没有发现create-react-app,会将其下载到一个临时目录,使用以后再删除。所以,以后再次执行上面的命令,会重新下载create-react-app。
—no-install 参数和—ignore-existing 参数
—no-install,强制使用本地模块,不下载远程模块,如果没有本地模块,会报错。
$ npx --no-install http-server
如果忽略本地的同名模块,强制安装使用远程模块,可以使用—ignore-existing参数
$ npx --ignore-existing create-react-app myApp
使用不同版本的node
利用 npx 可以下载模块这个特点,可以指定某个版本的 Node 运行脚本。
$ npx node@0.12.8 -vv0.12.8
原理是从 npm 下载这个版本的 node,使用后再删掉。
某些场景下,这个方法用来切换 Node 版本,要比 nvm 那样的版本管理器方便一些。
