Для разработки/сборки необходимы следующие глобальные зависимости:
-
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-кодов).
test