npx 指令
npx
是一个 Node.js 工具,用于执行包中的命令,或者临时运行未安装的包。这使得你能够在不全局安装软件包的情况下运行其命令。
从某种意义上说,npx
可以看作是 npm exec
的一种更简单、更方便的替代方式。
它们都用于在项目中执行本地安装的 npm 包中的命令,但 npx
提供了更多功能。
npm exec -- <pkg>[@<version>] [args...]
npm exec --package=<pkg>[@<version>] -- <cmd> [args...]
npm exec -c '<cmd> [args...]'
npm exec --package=foo -c '<cmd> [args...]'
alias: x
主要的区别是:
npx
更智能:npx
会自动帮你判断是否需要安装一个包,如果本地没有找到对应包,它会帮你安装它并执行命令。而npm exec
仅仅是运行了一个本地安装的包,没有安装的话会报错。npx
支持运行远程包: 你可以直接运行远程 npm 包的命令,而npm exec
不支持这个。npx
方便运行项目内脚本:npx
可以运行项目内package.json
中定义的脚本,而不需要显式地执行npm run
。
综上所述,npx
提供了更多的便利性和功能,特别是在执行本地包的命令时。
以下是一些使用 npx
的示例:
运行本地安装的包: 如果你在项目的依赖中有一个可执行的包,你可以通过
npx
运行它,而不需要全局安装它。npx <package-name>
指定命令版本: 有时候你可能需要运行一个特定版本的包中的命令。
npx -p <package-name>@<version> <command>
运行非全局安装的可执行文件: 如果你在项目依赖中有一个非全局安装的可执行文件,你可以通过
npx
运行它。npx <executable>
运行远程包:
npx
允许你从 npm 仓库中直接运行远程包。npx <remote-package-name>
执行项目中的脚本: 如果你的
package.json
中定义了一些脚本,你可以通过npx
来运行它们。npx <script-name>
指定 Node.js 版本运行脚本: 使用
npx
可以在不同的 Node.js 版本下运行脚本。npx -n <node-version> <script-name>
运行代码片段: 你可以通过
npx
运行一些临时的代码片段。npx -p node -e "console.log('Hello, world!')"
总之,npx
是一个方便的工具,使你能够临时运行命令、脚本和包,而不需要全局安装它们。