是否可以通过npx从单个模块运行多个二进制文件?

时间:2018-12-01 14:16:18

标签: node.js npm npx

(注意:我在这里使用cowsay模块来说明我的观点)

无需在计算机上安装模块,我可以使用以下命令直接通过npx运行它:

npx cowsay Hello!

如果我在package.json中指定了多个二进制文件。

"bin": {
    "cowsay": "./cli.js",
    "cowthink": "./cli.js"
},

我也想做

npx cowthink Hello!

但这失败了。这是因为npx运行名为cowsay的模块,并且只运行它在"bin"的{​​{1}}字段中找到的第一个命令吗?

是否可以直接从package.json运行cowthink

1 个答案:

答案 0 :(得分:3)

the documentation所述,

  

除非指定了--package选项,否则npx会尝试根据提供的说明符猜测要调用的二进制文件的名称

如果二进制名称和程序包名称不匹配,这就是--package option的用途:

npx -p cowsay cowthink Hello!