(注意:我在这里使用cowsay模块来说明我的观点)
无需在计算机上安装模块,我可以使用以下命令直接通过npx运行它:
npx cowsay Hello!
如果我在package.json
中指定了多个二进制文件。
"bin": {
"cowsay": "./cli.js",
"cowthink": "./cli.js"
},
我也想做
npx cowthink Hello!
但这失败了。这是因为npx运行名为cowsay
的模块,并且只运行它在"bin"
的{{1}}字段中找到的第一个命令吗?
是否可以直接从package.json
运行cowthink
?
答案 0 :(得分:3)
除非指定了--package选项,否则npx会尝试根据提供的说明符猜测要调用的二进制文件的名称
如果二进制名称和程序包名称不匹配,这就是--package
option的用途:
npx -p cowsay cowthink Hello!