npx 包运行工具
npx 是在 npm v5.2.0 之后的一种内建指令,可以理解为用于临时安装并执行某个包的一个工具。
一、npx 的安装
Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下:
npm install -g npx
二、npx 的使用
1、无需安装全局命令
npx 的一个好处就是避免安装全局命令,以及对于命令开发者来说,可以减少碎片化问题。
npx @vue/cli -V
# 等价于
npm install @vue/cli -g
vue -V
其中 npm 会永久安装全局命令的包,而 npx 安装使用后即移除。
2、自动寻找路径
如果一个包配置了 bin 后,当它被安装时,在项目的 node_modules/.bin 下就会有相应的指令,方便执行。
举个例子,项目安装了测试工具 Mocha,要查看 mocha
的版本:
# 一般方法查看
node-modules/.bin/mocha --version
# 使用 npx 查看
npx mocha --version
可以看到 npx 让项目内部安装的模块用起来更方便了。运行 npx mocha 会自动地在项目的 node_modules 文件夹中找到命令的正确引用,而无需知道确切的路径,也不需要在全局和用户路径中安装软件包。
npx 自动寻址的原理很简单,就是运行时会到 node_modules/.bin
路径和环境变量 $PATH
中检查命令是否存在。
3、使用指定的 Node.js 版本运行
使用 @ 指定版本,并将其与 node npm 软件包 结合使用:
npx node@10 -v #v10.18.1
npx node@12 -v #v12.14.1
这有助于避免使用 nvm 之类的工具或其他 Node.js 版本管理工具。
4、直接从 URL 运行代码片段
npx 可以直接运行 GitHub 上面的模块源码。
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
注意,远程代码必须是一个模块,即必须包含 package.json
和入口脚本。