npx

本文最后更新于:8 个月前

npx是node包执行器,用来便捷调用node模块,这里介绍了4种常见用途

npx:node包执行器

一、介绍

传送门:npx | npm Docs (npmjs.com)

Run a command from a local or remote npm package

npm 从5.2版开始,增加了 npx 命令

简单来说,npm 是一个 node 包管理器。npx 是一个 Node 包执行器,这里的Node 包可以是本地也可以是远程的。允许开发者在无需安装的情况下执行任意 Node 包。

Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下

1
npm install -g npx

二、应用场景

1. 调用项目node_modules中的模块

在命令行中,如果要调用node_modules中安装的模块需要添加上完整的路径,如下:

1
2
# 项目的根目录下执行
node-modules/.bin/mocha --version

但是如果使用 npx ,我们只需要

1
2
# 项目的根目录下执行
npx mocha --version

其中的原理是:npx运行时,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在。

由于 npx 会检查环境变量$PATH,所以系统命令也可以调用

1
2
npx ls
# 等同于直接调用ls

注意,Bash 内置的命令不在$PATH里面,所以不能用。比如,cd是 Bash 命令,因此就不能用npx cd

2. 避免全局安装

比如,create-react-app这个模块是全局安装,npx 可以运行它,而且不进行全局安装。

1
npx create-react-app my-react-app

原理是:运行时,npx 将create-react-app下载到一个临时目录,使用以后再删除

3. 临时使用不同版本的node

利用 npx 可以下载模块这个特点,可以指定某个版本的 Node 运行脚本。

1
npx node@0.12.8 -v	# v0.12.8

原理是从 npm 下载这个版本的 node,使用后再删掉

4. 执行github源码

1
2
# 执行仓库代码
$ npx github:piuccio/cowsay hello

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

三、常用参数

1
2
3
4
5
# 强制使用本地模块,不下载远程模块
npx --no-install http-server

# 忽略本地的同名模块,强制安装使用远程模块
npx --ignore-existing create-react-app my-react-app

参考链接

npx 使用教程 - 阮一峰的网络日志 (ruanyifeng.com)

npx | npm Docs (npmjs.com)


npx
http://timegogo.top/2023/06/16/后端/node:npx/
作者
丘智聪
发布于
2023年6月16日
更新于
2023年7月16日
许可协议