npx 是一个命令行工具,npm 5.2.0 版本中新增的功能。以前用 vue 的脚手架创建项目,需要全局安装 vue-cli,用 npx 可以不用全局安装就能使用。
vue2 创建项目,之前需要全局安装:
npm install @vue/cli -g | |
vue create project-name |
用 npx 可以直接创建:
npx @vue/cli create project-name |
使用方法就是 npx 包名 运行命令,就是比较看网速,创建的时候需要去远程下载,比较费时间。
npx 的运行机制:
- 当 npx 运行某个命令时,npx 会首先检查本地是否已经安装了该命令对应的包。
- 如果本地已经安装了,npx 会直接使用本地安装的包来执行命令。
- 如果本地没有安装,npx 下载最新版本的相关包。
- 载完成后,npx 会临时将包安装到一个临时目录中,并使用该临时目录中的包来执行命令。
- 命令执行完毕后,npx 会自动清理临时目录中的包,以节省空间。
npx 的好处肯定就显而易见了,不用全局安装,节省了空间,每次使用的包都是远程最新的,对于那些只需要偶尔使用某些命令或工具的情况非常有用,如果是想要用不同的版本,npx 的优势也是很明显,根本不会版本冲突。缺点就是每次都得下载一下,网络不好的情况,需要一定的时间,如果不是常用的,用 npx 会很方便快捷,如果是常用的,还是建议全局安装一下。
如果想看 npx 的缓存位置可以用 npm config get cache,里面_npx 就有,但是时效和什么时候清除,怎么样的机制清除,没找到对应的官方文档。
npm 和 npx 侧重点不同:
- npm 侧重 manage,安装、管理、发布
- npx 侧重 execute,执行
- npm 是有版本的,可更新,npx 就是一个工具,只执行