npx的使用

npx是一个工具,npm v5.2.0引入的一条命令(npx),一个npm包执行器,指在提高从npm注册表使用软件包时的体验。

使用npx有如下好处:

1、可以直接执行npm包中的可执行文件
比如,项目内部安装了测试工具mocha

npm install -D mocha

一般来说,调用mocha,只能在项目脚本和package.jsonscript字段里面,如果想在命令行下调用,必须像下面这样:

node-modules/.bin/mocha --version

这样使用比较麻烦,使用npx就简单多了:

npx mocha --version

npx的原理很简单,就是运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检测命令是否存在,存在则执行,不存在则临时安装mocha来执行。

2、避免全局安装模块
比如我们新建一个vue项目时,需要先进行脚手架@vue-cli的全局安装,然后再进行项目的新建,如下:

npm install -g @vue/cli
vue create my-app

全局包默认的安装路径为C:\Users\xxx\AppData\Roaming\npm,安装成功后,我们可以在该目录下查看到安装的包。

使用npx可简化如下:

npx @vue/cli my-app

上面代码运行时,npx@vue/cli下载到一个临时目录,使用以后再删除。所以,以后再次 执行上面的命令时,会重新下载@vue/cli

3、可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题
相信小伙伴们都遇到过旧的项目用的是比较老的node版本,如果新项目想用新的node版本,则会存在不兼容的情况,可以通过安装nvm来给本地安装多个node包解决此问题。使用npx也可解决该问题。

npx node@12.20.0 -v

4、执行GitHub源码
npx还可以执行GitHub上面的模块源码。需要注意的是,远程代码必须是一个模块,即必须包含package.json和入口脚本。

5、npxyarn createnpm init区别
create-react-app为例,文档给了我们三种创建应用的方式,如下:

npx create-react-app my-app
npm init react-app my-app
yarn create react-app my-app

npx先下载create-react-app最新包,执行完可执行文件后,即删除
npm先全局安装create-react-app的包,若已存在,则升级到最新版本,然后执行包的可执行文件,执行完即删除。npm init等同于npm create,可参考官方文档说明
yarn先全局安装create-react-app的包,若已存在,则升级到最新版本,然后执行包的可执行文件,执行完不进行删除,会保留在全局。

参考文章
1、npm 和 npx 有什么区别?
2、npx 使用教程
3、npx & yarn create & npm init

posted @ 2022-02-01 20:24  SummerSatr  阅读(1511)  评论(0编辑  收藏  举报