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

dgw*_*yer 5 node.js npm npx

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

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

npx cowsay Hello!
Run Code Online (Sandbox Code Playgroud)

如果我在package.json.

"bin": {
    "cowsay": "./cli.js",
    "cowthink": "./cli.js"
},
Run Code Online (Sandbox Code Playgroud)

我也想做

npx cowthink Hello!
Run Code Online (Sandbox Code Playgroud)

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

有没有办法cowthink直接运行npx

Est*_*ask 7

正如文档所述,

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

如果二进制和包名称不匹配,这是什么--package选项

npx -p cowsay cowthink Hello!
Run Code Online (Sandbox Code Playgroud)