美文网首页
npx详细使用

npx详细使用

作者: 偶余杭 | 来源:发表于2019-05-18 11:56 被阅读0次

前几天接触到了npx,发现这个命令非常好用,这里总结下npx的使用。

npx是什么?


npx是npm5.2之后发布的一个命令。官网说它是“execute npm package binaries”,就是执行npm依赖包的二进制文件,简而言之,就是我们可以使用npx来执行各种命令。
npx官网:https://www.npmjs.com/package/npx

为什么要使用npx?


解决的问题

在命令行执行本地已安装的依赖包命令

使用npx可以在命令行直接执行本地已安装的依赖包命令,不用在scripts脚本写入命令,也不用麻烦的去找本地脚本。

首先来看这个场景:
我们本地安装了一个依赖包:

npm i -D mocha

想要在本地(当前目录)执行它时,什么都不做时是不能运行这个命令的:


image.png

我们一般会使用几种方式来运行我们想要运行的命令:

  1. 使用package.json的scripts脚本
//package.json
"scripts": {
  "findmocha": "mocha --version",
}

然后在命令行运行:

npm run findmocha
image.png
  1. 在命令行中直接找到模块的二进制文件运行
  2. 全局安装模块

而使用npx,我们可以直接在命令行执行我们要运行的命令:

npm i -D mocha
npx mocha --version
image.png

不用全局安装,直接在命令行执行一次性命令

有很多命令,我们只需要执行一次的,但是却要全局安装一次,实在不科学,使用npx,可以在不全局安装依赖包的情况下,运行命令,而且运行后不会污染全局环境

比如

npx create-react-app my-react-app

npx 将create-react-app下载到一个临时目录,使用以后再删除。
每次运行这个命令,都会重新下载依赖包,运行后删除。

切换node版本来运行命令

当你想要运行的命令不兼容当前的nodejs版本,可以通过npx来切换版本,指定某个版本的 Node 来运行命令。

npx的-p选项指定要安装的包,并将其添加到正在运行的$PATH中
如:

 npx node@6 -v
 npx node@7 -v
 npx node@8 -v

以上的命令,会自动下载需要的node,执行完命令后删除。

npx的原理

npx的原理,就是在运行它时,执行下列流程:

  1. node_modules/.bin路径检查npx后的命令是否存在,找到之后执行;
  2. 找不到,就去环境变量$PATH里面,检查npx后的命令是否存在,找到之后执行;
  3. 还是找不到,自动下载一个临时的依赖包最新版本在一个临时目录,然后再运行命令,运行完之后删除,不污染全局环境。

安装和参数说明


安装

npm install -g npx

常用参数

-p 参数

-p参数用于指定 npx 所要安装的模块

npx -p node@6 node -v

--no-install 参数

强制使用本地模块,不下载远程模块,如果本地不存在该模块,就会报错。

--ignore-existing 参数

忽略本地的同名模块,强制安装使用远程模块

使用场景总结

使用npx执行 本地命令

npm i -D mocha
npx mocha --version

使用npx一次性执行命令

npx create-react-app my-react-app

使用npx切换node版本

 npx node@6 -v

使用npx执行 GitHub 源码

npx github:piuccio/cowsay

远程代码必须是一个模块,即必须包含package.json和入口脚本

使用npx开启一个静态服务器

npx http-server    #默认返回根目录下index.html
npx http-server -p 3000  #指定端口

参考链接:
https://www.npmjs.com/package/npx
http://www.ruanyifeng.com/blog/2019/02/npx.html
https://www.jianshu.com/p/a4d2d14f4c0e

相关文章

  • npx详细使用

    前几天接触到了npx,发现这个命令非常好用,这里总结下npx的使用。 npx是什么? npx是npm5.2之后发布...

  • node包管理工具npm/nrm/yarn

    npx 使用 npx使用--阮一峰[http://www.ruanyifeng.com/blog/2019/02/...

  • npx使用

    前言 npx最想要解决的主要问题,就是调用项目内部安装的模块。比如我们通过-D安装了 Mocha工具。 如果需要调...

  • npm

    使用nrm工具切换淘宝源 npx nrm use taobao 如果之后需要切换回官方源可使用 npx nrm u...

  • webpack

    ./当前目录 ../上级目录npx 运行本地目录的 安装、使用 安装 使用一个配置文件 然后执行npx web...

  • npm 默认源切换

    使用nrm工具切换淘宝源npx nrm use taobao 切换回官方源npx nrm use npm

  • [学习笔记] npx使用

    npm 从 5.2 版本开始,增加了 npx 命令 Node 自带 npm 模块,所以可以直接使用 npx 命令 ...

  • 快速创建react项目

    1.node 新版本自带npx 2.使用npx是为了减少全局安装对硬盘的占用量

  • npx

    npm 从5.2版开始,增加了 npx 命令 安装 Node.js 时会同时安装 npm,所以可以直接使用 npx...

  • 关于 Cypress 的启动和 cy.visit 的调试

    npx 是 npm 自带的命令行工具: 在项目根目录下,使用命令行 npx cypress open 启动: 也可...

网友评论

      本文标题:npx详细使用

      本文链接:https://www.haomeiwen.com/subject/gkfvaqtx.html