npx是npm自带的命令执行器,专为“用完即走”设计:它不修改项目依赖、不污染全局环境,优先运行本地node_modules/.bin中的工具,本地未安装时自动从npm下载指定版本并执行,完成后不残留;支持版本锁定、多包协作及缓存复用。

npx 是 npm 自带的命令执行器,专为“用完即走”设计。它不改变项目依赖,也不污染全局环境,适合运行脚手架、检查工具或一次性命令。
直接运行本地已安装的工具
在项目目录中执行 npx 时,它会自动查找 node_modules/.bin 下的可执行文件。比如项目里已通过 npm install eslint --save-dev 安装了 ESLint,就可以直接运行:
-
npx eslint . --fix—— 使用项目本地版本检查并修复代码 -
npx jest --watch—— 启动本地安装的 Jest 测试监听器
无需配置 PATH,也无需写 npm run lint 脚本,npx 会优先匹配项目内的 bin 文件。
临时运行未安装的工具
如果命令在本地找不到,npx 会自动从 npm 注册表下载最新版(或指定版本)并执行,完成后不写入 package.json 或 node_modules:
立即学习“Java免费学习笔记(深入)”;
-
npx http-server -p 8080—— 启动静态服务器,关掉终端后不留痕迹 -
npx create-react-app my-app --template vite—— 创建新项目,不需提前npm install -g create-react-app -
npx markdown-toc README.md -i—— 一键更新文档目录,用完即弃
精确控制版本与多包协作
npx 支持版本锁定和组合调用,避免隐式升级带来的不确定性:
-
npx jest@27.5.1 --version—— 明确使用 Jest 27.5.1,跳过本地或全局版本 -
npx -p prettier -p eslint -c "prettier --write src/ && eslint --fix src/"—— 同时拉取两个包,在单条命令中串联执行 -
npx @types/node@18 npm run build—— 在构建时注入特定类型定义版本
注意缓存与网络行为
npx 不是每次重下包,它复用 npm 缓存(默认在 ~/.npm/_npx),重复执行同一命令极快。但首次拉取依赖需要稳定网络;国内用户可提前设置镜像源加速:
npm config set registry https://registry.npmmirror.com- 若想清理旧缓存:
npx clear-npx-cache或npm cache clean --force


















