在过去的几年中,npm
生态系统越来越倾向于本地安装项目的开发依赖,而不是全局安装。但一直没有一个方法便捷的调用本地二进制文件,而npx
的出现填补了这一块空白
npm
更新到 5.2.0 版本之后,集成了npx
。如果你是之前的版本,也可以手动安装
$ npm install -g npx
npx
的作用就是调用依赖包里的二进制文件,在没有它之前我们可能这么写:
$ npm i -D webpack
$ ./node_modules/.bin/webpack -v
如果我们想直接用webpack -v
,就必须安装在全局
有了npx
之后,我们可以这样写:
$ npx webpack -v
也就是说npx
会自动查找当前依赖包中的可执行文件,如果找不到,就会去PATH
里找。如果依然找不到,就会帮你安装!
npx 甚至支持运行远程仓库的可执行文件,如
$ npx -p lolcatjs -p cowsay -c
'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs'
...
_____
< your-cool-package@1.2.3 >
-----
^__^
(oo)_______
(__) )/
||----w |
|| ||
那些苦恼不同项目使用不同版本node
的同学,可以用npx
来切换版本了
$ npx node@0.12.8 -v
v0.12.8