npx 是 npm 5.2+ 自带的临时执行工具,支持运行已发布包、远程 git 仓库或本地未发布包,自动下载、执行并清理,适用于一次性任务和 ci 脚本。

npx 是 npm 5.2+ 自带的工具,专为“临时运行”包的可执行文件而设计,无需全局或本地安装。它能直接运行远程(基于 URL)或本地(路径或包名)的 npm 包命令,适合一次性任务、快速验证、CI 脚本或避免污染项目依赖。
运行已发布的 npm 包(不需提前安装)
只要包在 npm registry 上有可执行入口(如 bin 字段定义),npx 会自动下载、解压、执行并清理临时文件:
-
npx create-react-app my-app —— 创建新 React 项目,不装全局
create-react-app - npx http-server ./dist -p 8080 —— 启动静态服务器,用完即弃
-
npx prettier --write src/**/*.js —— 格式化代码,即使项目没装
prettier
运行远程 Git 仓库(支持 GitHub、GitLab、Bitbucket 等)
格式:npx github:用户名/仓库名[@分支或 tag] 或 npx git+https://...:
- npx github:google/protobuf#v3.21.12 --version —— 运行 Protobuf 的 CLI 工具
- npx git+https://gitlab.com/username/tool.git#main --help
- 注意:仓库必须包含有效的
package.json和bin字段,或导出可执行的index.js/cli.js
运行本地未发布包(含相对路径或绝对路径)
适用于调试自己写的 CLI 工具或团队内未发版的脚本:
-
npx ./my-cli —— 运行当前目录下名为
my-cli的可执行文件(需有#!/usr/bin/env node) - npx ../tools/local-build --watch —— 运行上层目录中的本地构建脚本
-
npx file:/path/to/my-package —— 指向本地含
package.json的目录,npx 会识别其bin
实用技巧与注意事项
- 加
-p参数可保留缓存(默认每次运行后清理):npx -p jest@29 jest --version - 用
--no-install强制跳过安装(仅当已缓存时有效),避免网络请求 - 若提示
command not found,检查包是否真有bin字段,或入口文件是否有可执行权限(Linux/macOS) - Windows 用户注意:路径分隔符用
/更稳妥,npx .\script.js可能失败,建议写成npx ./script.js











