我正在寻找一个简单的类似git的cli参数解析器:
$ app [global-options] command [command-options]
我尝试了commander,gitlike-cli和其他几个cli解析器库 - 它们似乎都不支持从命令选项中分离全局选项。
commander似乎支持它。但是当我深入研究时,我发现了问题。例如,我想要一个-v
全局选项,可以在全局范围内实现冗长。我所做的只是在global.verbose = true;
中设置index.js
,在特定命令index-subcmd.js
中,当我阅读global.verbose
时,它未设置!
我是否遗漏了一些明显的东西,或者我的理解是否正确,节点生态系统缺少具有此功能的lib?来自Java背景,我真的很想念airline。
答案 0 :(得分:0)
我编写了一个cli解析库来支持用例:wiz-cliparse。
答案 1 :(得分:0)
我还想指出一个我对流行的CLI工具感到失望后写的库。我创建了wily-cli以与这些大名称工具竞争,提供更多自定义和CLI功能,并尝试更易于使用。 Subhash的wiz-cliparse应该能够帮助你的用例,但如果你需要创建一个更强大的CLI,我可能会建议你研究一下wily-cli。对于您的用例,那些“全局选项”基本上是您的初始命令的选项(从您的示例,即app
)。创建选项时,您可以在选项配置中设置passThrough
标志...
.option('example', 'Example option', { passThrough: true });
这会将选项设置为也传递给children / gandchildren / etc。命令