描述

中英双语

此命令允许您在与通过 npm run 运行类似的上下文中从 npm 包(本地安装或远程获取)运行任意命令。

在没有位置参数或 --call 的情况下运行,这允许您在与 package.json 脚本运行相同的 shell 环境中交互地运行命令。当标准输入是 TTY 时,CI 环境中不支持交互模式,以防止挂起。

--package 选项指定的任何包都将在执行命令的 PATH 中提供,以及任何本地安装的包可执行文件。--package 选项可以指定多次,以在所有指定包都可用的环境中执行提供的命令。

如果本地项目依赖项中不存在任何请求的包,则将它们安装到 npm 缓存中的文件夹中,该文件夹在执行过程中添加到 PATH 环境变量中。打印一个提示(可以通过提供 --yes--no 来抑制)。

不带说明符的包名称将与本地项目中存在的任何版本匹配。仅当具有与本地依赖项完全相同的名称和版本时,带有说明符的包名称才会被视为匹配。

如果未提供 -c--call 选项,则使用位置参数生成命令字符串。如果未提供 --package 选项,则 npm 将尝试根据以下启发式方法从作为第一个位置参数提供的包说明符中确定可执行文件名称:

  • 如果包在 package.jsonbin 字段中有一个条目,或者如果所有条目都是同一命令的别名,则将使用该命令。
  • 如果包有多个 bin 条目,其中一个与 name 字段的无范围部分匹配,则将使用该命令。
  • 如果这不会导致恰好一个选项(或者因为没有 bin 条目,或者它们都不匹配包的 name),那么 npm exec 会以错误退出。

要运行指定二进制文件以外的二进制文件,请指定一个或多个 --package 选项,这将阻止 npm 从第一个命令参数推断包。