Как я могу создать подкоманды в стиле 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"
Одна вещь, которую я заметил, это то, что если вы хотите поделиться некоторыми флагами или аргументами с другими командами, вам либо придется использовать базовый класс для этого, либо объявить флаги / переключатели / аргументы в другом файле и импортировать их в нужную команду.