npx 是 npm 5.2 起自带的包执行器。本地安装过 webpack 后,npx webpack 会优先查找 node_modules/.bin 里的版本,避免全局版本与项目依赖不一致。没安装过的包也能直接运行:npx 会临时下载、执行完毕后清理,非常适合尝鲜脚手架或命令行工具。
它最大的价值是执行项目内依赖的命令行工具,比如项目装了 eslint,即使全局没装也能用 npx eslint . 走项目版本。执行官方脚手架时 npx create-react-app my-app 是推荐方式——永远拿到最新版,也不会在全局留下需要单独更新的包。加 -y 可跳过安装确认,包名后 @版本 可指定版本。
// npx 最常见的三种用法 // 1. 运行本地 node_modules/.bin 中的命令(优先项目版本) // npx eslint . // 2. 临时执行未安装的远程包(用完即删) // npx create-react-app my-app // 3. 指定版本执行 // npx eslint@8 src/ // 等价于在代码里调用本地命令 const { exec } = require('child_process'); exec('npx webpack --version', (err, stdout) => { if (err) throw err; console.log(stdout); });