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

Posted

技术标签:

【中文标题】是否可以通过 npx 从单个模块运行多个二进制文件?【英文标题】:Is it possible to run multiple binaries from a single module via npx? 【发布时间】:2019-05-03 10:38:40 【问题描述】:

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

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

npx cowsay Hello!

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

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

我也想做

npx cowthink Hello!

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

有没有办法直接从npx 运行cowthink

【问题讨论】:

【参考方案1】:

正如the documentation 所说,

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

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

npx -p cowsay cowthink Hello!

【讨论】:

以上是关于是否可以通过 npx 从单个模块运行多个二进制文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用局部安装的模块 npx

您可以从单个 Nodejs 模块中导出多个类吗?

有趣的npx

[NodeJs] 你有使用过npx吗?它主要解决什么问题?

是否可以从 C# 运行 prolog?

npx:一个npm包执行器