NPM 运行 一个不在路径中的命令如何

How can NPM run a command that isn't in path

ava 命令不在我的路径中。我无法从包含一些 AVA 测试的项目目录中 运行 它。

我的项目的 npm test 命令设置为 ava tests/*.js --verbose,并且可以从终端中的相同位置以某种方式调用 ava 命令。

我的问题是:npm 是如何调用 ava 命令的?我怀疑它是从项目的 node_modules 文件夹中调用它的,但我在任何来源中都找不到它。

如果有人能解释这是怎么发生的,或者最好能告诉我来源,我将不胜感激。

当您 运行 npm run [script] 或在本例中 npm test 时,NPM 足够聪明,可以尝试先从 node_modules/.bin 目录执行二进制文件。