【发布时间】:2020-06-20 15:41:56
【问题描述】:
我正在查看指挥官 npm 包提供的所有自定义,它真的很好,但我想知道是否有任何方法可以找到用户是否提供了不受支持的选项。
对于不支持的命令,我们可以写:(但不确定不支持的选项)
const commander = require('commander');
this.applicationCommander = new commander.Command();
this.applicationCommander.command('*').action(this.applicationCommander.help);
【问题讨论】:
-
然而,CLI 工具的通用行为是在
--help和未传递参数时触发此操作,并简单地忽略未知参数。您不会在不受支持的标志上显示帮助打印输出:它们不受支持,您的 CLI 工具已经对它们没有任何作用,因此就执行而言没有错误,并且 CLI 工具应该只使用它的 args 运行知道。 -
同意,但如果选项无效,我想显示帮助菜单。只有我想显示
--help的输出 :) 进行各种自定义总是好的(至少我相信这一点)。 -
这样做的问题是人们希望您的 CLI 工具能够生成真正的
stdout文本。在不受支持的标志上显示帮助,而不是做它应该做的,意味着它不能与其他 CLI 实用程序链接。所以......真的,你不应该想要,你应该效仿其他人树立的榜样。你的 man page/--help输出已经足够有用了,人们会阅读它来看看他们能做什么。 -
同意,并且有道理(将做出改变),但将保持问题的开放性以寻找可能的方式。
-
你可以随时问他们。这是一个开源包,没有什么能阻止你为它提交问题。