针对node_modules目录下.bin下的可执行文件,如果是项目安装而非全局安装,使用时会非常麻烦,npx帮助解决这个问题
npm 从5.2版开始,增加了 npx 命令
如果早起版本不能使用可以自己手动安装
$ npm install -g npx
比如安装了sequelize-cli 管理数据库
使用的时候需要这样子调用
./node_modules/.bin/sequelize-cli db:seed:all
有了npx 之后可以这样子就可以了
npx sequelize-cli db:seed:all
npx 的原理很简单,就是运行的时候,会到node_modules/.bin
路径和环境变量$PATH
里面,检查命令是否存在。
由于 npx 会检查环境变量$PATH
,所以系统命令也可以调用。
# 等同于 ls
$ npx ls
我们把模块安装在内部的目的就是为了避免全局安装模块,升级不方便,各个项目使用不同版本的原因,全局安装本身就不合理
当前项目如果不错在的模块通过npx执行会帮你下载到一个临时目录,使用以后会自动删除。
通过这一特性,使用不同版本的 node
$ npx node@0.12.8 index.js