如何使用 oclif 创建 Git 风格的子命令?
How can I create Git-style subcommands with oclif?
我正在使用 Heroku 的 CLI 框架 oclif 编写 CLI。它工作得很好,但我想要 Git-like 子命令,比如:
$ mycli mycommand subcommand
$ mycli mycommand subcommand --flags="are awesome"
$ mycli mycommand another-subcommand --name="John Doe"
我浏览了文档,但找不到任何与命令结构、布局、层次结构等相关的信息。我可以将 mycommand
写成普通命令,然后先打开 argv 的开关参数,但我的子命令接受不同的标志,所以当有人运行 mycli help mycommand
.
时,我失去了 oclif 报告帮助的能力
所以,我的问题是:使用 oclif 创建子命令的最佳方法是什么?
您可以创建以下结构:
- src
--- commands // all your commands will be on this folder
----- subcommand1 // if you have more commands from after subcomand1 include them in this folder like the one bellow.
------ command.js // a simple command
----- subcommand2.js
这会产生如下命令:
cli subcommand1 command --some-flag --some-argument="xpto"
cli subcommand2 --some-other-flag --some-other-argument="WAT"
我注意到的一件事是,如果你想与其他命令共享一些标志或参数,你要么必须为此使用基数 class,要么在上声明 flags/switches/arguments另一个文件并将它们导入所需的命令
我正在使用 Heroku 的 CLI 框架 oclif 编写 CLI。它工作得很好,但我想要 Git-like 子命令,比如:
$ mycli mycommand subcommand
$ mycli mycommand subcommand --flags="are awesome"
$ mycli mycommand another-subcommand --name="John Doe"
我浏览了文档,但找不到任何与命令结构、布局、层次结构等相关的信息。我可以将 mycommand
写成普通命令,然后先打开 argv 的开关参数,但我的子命令接受不同的标志,所以当有人运行 mycli help mycommand
.
所以,我的问题是:使用 oclif 创建子命令的最佳方法是什么?
您可以创建以下结构:
- src
--- commands // all your commands will be on this folder
----- subcommand1 // if you have more commands from after subcomand1 include them in this folder like the one bellow.
------ command.js // a simple command
----- subcommand2.js
这会产生如下命令:
cli subcommand1 command --some-flag --some-argument="xpto"
cli subcommand2 --some-other-flag --some-other-argument="WAT"
我注意到的一件事是,如果你想与其他命令共享一些标志或参数,你要么必须为此使用基数 class,要么在上声明 flags/switches/arguments另一个文件并将它们导入所需的命令