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 的示例:

  1. 运行本地安装的包: 如果你在项目的依赖中有一个可执行的包,你可以通过 npx 运行它,而不需要全局安装它。

    npx <package-name>
    
  2. 指定命令版本: 有时候你可能需要运行一个特定版本的包中的命令。

    npx -p <package-name>@<version> <command>
    
  3. 运行非全局安装的可执行文件: 如果你在项目依赖中有一个非全局安装的可执行文件,你可以通过 npx 运行它。

    npx <executable>
    
  4. 运行远程包:npx 允许你从 npm 仓库中直接运行远程包。

    npx <remote-package-name>
    
  5. 执行项目中的脚本: 如果你的 package.json 中定义了一些脚本,你可以通过 npx 来运行它们。

    npx <script-name>
    
  6. 指定 Node.js 版本运行脚本: 使用 npx 可以在不同的 Node.js 版本下运行脚本。

    npx -n <node-version> <script-name>
    
  7. 运行代码片段: 你可以通过 npx 运行一些临时的代码片段。

    npx -p node -e "console.log('Hello, world!')"
    

总之,npx 是一个方便的工具,使你能够临时运行命令、脚本和包,而不需要全局安装它们。

Contributors: masecho