文章目录
背景
- 解决 npm 之前的执行包中的命令行需要先下载的问题,如果有多个不同版本的包就需要下载多次
- 比如已经装了全局的 webpack 1.x 版本并且还要继续使用,还需要装个 webpack 4.x 使用的其相应功能,这个时候可以不装在全局,用 npx webpack 代替 webpack 命令,互不干扰。
作用
- 避免下载多个库造成的体积浪费、污染等问题
- 可以指定运行多个版本互不干扰
- 可以方便临时切换某个 node 版本执行
javascript
npx node@14 -v
# v14.18.0
npx -p node@14 node -v
# v14.18.0
执行流程
- npx create-react-app my-app
- npx 和 npm exec 类似,传递的参数格式有区别
- $PATH 里有没有,如果没有,查找当前目录的 node_modules 里有没有,如果还是没有,就安装这个库来执行
- npx 会在执行完命令后删除下载的包