Я не знаю, есть ли «правильный» способ сделать это, но я могу рассказать вам, как я справился с проблемой, аналогичной вашей. Я хотел создать CLI и плагин Visual Studio Code, чтобы люди могли использовать функциональность как из VSC, так и из CLI (для тех, кто не использует VSC), поэтому я выбрал подход, заключающийся во всей логике в своем собственном пакете, а затем создайте два других пакета, которые включали первый, один для CLI и один плагин VSC, который требовал пакета «логика».
В пакете CLI у вас будет только код, строго связанный с обработкой команд, и тогда в пакете логики произойдет настоящее мясо. В моем случае пакет плагинов VSC содержал очень мало строк кода, только конфигурация и вызовы необходимых функций.
Тогда относительно структуры кода некоторые рекомендации:
- выставляйте только то, что строго необходимо
- изолировать ваш код в разных файлах / классах на основе общей функциональности (и перейти к пункту 1)
- проверить свой код
- lint ваш код
Но это здравый смысл и независимые от языка рекомендации.