随 npm 5.2.0+ 一起安装的命令行工具,执行 npm package 中的命令,无需全局安装或在项目中单独配置依赖。

原理

执行时依次查找:

  1. node_modules/.bin
  2. 环境变量 $PATH
  3. 若不存在 → 临时从仓库下载 → 执行 → 删除(不留痕迹)

基本使用

# 创建 React 项目(无需全局安装 create-react-app)
npx create-react-app my-app
 
# 运行项目本地安装的 webpack
npx webpack --config webpack.config.js
 
# 从 GitHub 仓库直接运行
npx github:facebook/create-react-app

进阶用法

# 指定版本执行
npx create-react-app@4.0.0 my-app
 
# 禁止自动安装(只用本地已有的)
npx --no-install create-react-app my-app
 
# 强制使用最新版(忽略缓存)
npx --ignore-existing create-react-app my-app

优点

  1. 避免全局安装可执行依赖包,不污染全局环境
  2. 可以执行依赖包中的命令,安装完成后自动运行
  3. 自动加载 node_modules 中的依赖包,无需手动指定 $PATH
  4. 支持指定特定 Node 版本和命令版本

工具边界

  • npx 是命令执行器,不是包管理器
  • 临时工具用 npx,项目内工具用 npm run
  • bun 用户可以用 bunx(bun x 别名)代替 npx,速度更快