Как я могу создать подкоманды в стиле Git с помощью oclif?

Я пишу CLI с использованием среды CLI в Heroku. Это прекрасно работает, но я хотел бы иметь Git-подобные подкоманды, что-то вроде этого:

$ mycli mycommand subcommand

$ mycli mycommand subcommand --flags="are awesome"

$ mycli mycommand another-subcommand --name="John Doe"

Я просмотрел документы, но не смог найти никакой информации, связанной со структурой команд, макетом, иерархией и т. Д. Я мог написать mycommand как обычная команда и включает первый аргумент argv, но мои подкоманды принимают разные флаги, поэтому я теряю способность oclif сообщать о какой-либо помощи, когда кто-то запускается mycli help mycommand,

Итак, мой вопрос: каков наилучший способ создания подкоманд с помощью oclif?

1 ответ

Решение

Вы можете создать следующую структуру:

 - 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"

Одна вещь, которую я заметил, это то, что если вы хотите поделиться некоторыми флагами или аргументами с другими командами, вам либо придется использовать базовый класс для этого, либо объявить флаги / переключатели / аргументы в другом файле и импортировать их в нужную команду.

Другие вопросы по тегам