npx是一个工具,npm v5.2.0引入的一条命令(npx),一个npm包执行器
npm的m是Management,npx的x可以理解为eXecute。
调用项目内部安装的模块
我们知道,如果一个包配置了bin之后,当它被安装的时候,在项目的node_modues/.bin 下就会有一个指令,方便执行。以 mocha 为例。 node node_modules/.bin/mocha **/*.test.js
一劳永逸党,把 mocha 指令写入到 npm scripts 后,会自动寻址 node_modules/.bin { scripts: { “test”: “mocha **/*.test.js” }}
npx mocha **/*.test.js
npx 的原理很简单,就是运行的时候,会到node_modules/.bin路径和环境变量$PATH里,检查命令是否存在。
npx 还能避免全局安装的模块
除了调用项目内部模块,npx 还能避免全局安装的模块。比如,create-react-app这个模块是全局安装,npx 可以运行它,而且不进行全局安装。
npx create-react-app my-react-app
上面代码运行时,npx 将create-react-app下载到一个临时目录,使用以后再删除。所以,以后再次执行上面的命令,会重新下载create-react-app。
可以指定node版本、命令的版本
npx -p node@16.6.1 node index.js
|