Как структурировать приложение cli узла - PullRequest
0 голосов
/ 27 июня 2018

Я хочу написать приложение узла cli, и мне интересно, как мне структурировать приложение. Я довольно новичок в узле и меня смущают все шаблоны проектирования, используемые при создании такого приложения. Я хочу иметь возможность вызывать приложение из командной строки, но также использовать его в качестве модуля узла для лучшего тестирования.

В настоящее время у меня есть один файл с множеством функций, которые вызываются напрямую из Cli, но я чувствую, что это довольно сложно поддерживать.

Есть ли хорошие записи о том, как делать такие вещи? я посмотрел на rimraf , но это смутило меня еще больше. Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Нет единого «стандартного» способа структурирования приложений Node.js, однако вы заметите, что многие авторы следуют аналогичным шаблонам. Вместо одного файла, содержащего весь код, он должен быть разбит на модули, сгруппированные по функциям. Взгляните на этот репозиторий на Github, в нем есть несколько очень хороших советов по поводу лучшей практики Node.js https://github.com/i0natan/nodebestpractices#1-project-structure-practices.

Я бы добавил еще пару указателей: убедитесь, что вы регистрируете ошибки, подумайте об использовании чего-то вроде Winston.js для этой цели. Также имеется некоторый механизм для перезапуска службы, если возникает критическая ошибка, например Forever.js.

Убедитесь, что вы также проводите модульное тестирование, есть хорошие тестовые фреймворки, Jasmine, Mocha, Cucumber.js.

0 голосов
/ 27 июня 2018

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

В пакете CLI у вас будет только код, строго связанный с обработкой команд, и тогда в пакете логики произойдет настоящее мясо. В моем случае пакет плагинов VSC содержал очень мало строк кода, только конфигурация и вызовы необходимых функций.

Тогда относительно структуры кода некоторые рекомендации:

  • выставляйте только то, что строго необходимо
  • изолировать ваш код в разных файлах / классах на основе общей функциональности (и перейти к пункту 1)
  • проверить свой код
  • lint ваш код

Но это здравый смысл и независимые от языка рекомендации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...