Для разработки/сборки необходимы следующие глобальные зависимости:
-
Node.JS. Версия 14.
-
yarn. Менеджер зависимостей (как
npm, но с бонусами). -
Visual Studio Code с установленными плагинами
- ESLint
- Prettier - Code formatter
- TypeScript Hero
- (опционально) npm
- (опционально) npm Intellisense
Использование другого редактора (или неиспользование плагинов) скорее всего приведет к нестандартному форматированию файлов (отступы, ...), что сломает Travis-тесты.
Все остальные зависимости (включая Typescript) будут установлены локально c правильными версиями посредством yarn.
- Склонировать репозиторий (
git clone https://github.com/sr-2020/nodejs-monorepo.git) и перейти в соответствующую папку (cd nodejs-monorepo). - Установить локальные зависимости:
yarn. Рекомендуется делать каждый раз послеgit pull, т.к. набор зависимостей может (и будет) меняться. - (опционально) Проверить, что все компилируется (
nx affected:build --all) и что тесты проходятся (nx affected:test --all).
Перед тем, как пушить в репозиторий, необходимо проверить что следующие команды не выдают ошибок:
- Сборка:
nx affected:build. - Тесты:
nx affected:test. - Linter (проверка форматирования, стиля, отсутствия неиспользованных переменных и т.п.):
nx affected:test. При редакторировании кода в Visual Studio Code с рекомендованным набором плагинов все файлы должны правильно форматироваться при сохранении.
- JavaScript-файлы (т.е. файлы с расширением .js) запрещены. Только TypeScript (.ts).
- Название всех файлов с тестами должно оканчиваться на .spec.ts.
Каждая папка в packages соответствует одному "подпроекту" - микросервису или библиотеке.
Содержит модели данных и прочие интерфейсы, использующиеся различными сервисами и библиотеками.
Микросервис отвечающий за пуш-нотификациии. Swagger-страница.
Библиотека, модельный движок A.L.I.C.E. Отвечает за исполнение модельных скриптов. Не завязан на модели какой-либо конкретной игры, может применяться для решения широкого спектра задач. Также не завязан на конкретную БД.
Библиотека, реализущая кодирование/декодирование QR-кодов и микросервис предоставляющий аналогичный функционал. Страница генерации ценника.
Микросервис импорта персонажей из JoinRPG и табличных данных из Google Sheets.
Модельные скрипты для ролевой игры Deus Ex Machina. Можно использовать как источник вдохновения/пример взаимодействия с API.
Модельные скрипты для ролевой игры Магеллан 2018. Можно использовать как источник вдохновения/пример взаимодействия с API (но модели там гораздо проще, чем в deus-model-engine).
Разнообразные скрипты.
Экспериментальный Telegram-бот (демонстрирующий функционал вроде генерации QR-кодов).