Приложение - фронтенд для Space Traders, симулятора торговли в космосе.
Все четыре модуля находятся в одном репозитории, но ставятся отдельно (yarn install
надо делать в каждой из директорий). Модули не включают напрямую код из других модулей (при более основательной настройке шарить надо будет только типы).
Контейнер запускается из директории container-service
командой yarn start
.
API-модуль запускается из директории fleet-api
командой yarn start --port 8500
.
Модули микрофронтендов запускаются из frontend-module
и navigation-module
командой yarn serve
.
- SingleSPA для контейнера и создания приложений/вспомогательных модулей
- openapi-generator-cli для автоматической генерации методов по документации OpenAPI
- Vue для приложений
- Typescript
- Webpack для сборки микрофронтендов
Сгенерированный модуль для обращения к API SpaceTraders. Тип генерации: typescript + fetch. Отдаёт наружу экземпляр менеджера данных. Кеширует данные и частично перезаписывает кеши если обновляется только часть сущности. Например, waypoint-ы системы запрашиваются один раз и кешируются. Данные корабля кешируются и если меняются только навигационные данные, кеш обновляется с учётом изменений.
Модуль информации о корабле. Управляет стыковкой/расстыковкой. Включает в себя список предметов в трюме. Подписан на изменения уровня топлива, текущей системы и статуса корабля (меняются при начале навигации из модуля navigation-module
). Использует vue
как общую зависимость.
Размер при включенном vue
: 234 kB
Размер при общем vue
: 153 kB
Модуль навигации. Показывает список waypoint-ов в текущей системе и позволяет передвигаться между ними. Подписан на изменения статуса корабля (запрещает навигацию если корабль пристыкован или уже в движении). Использует vue
как общую зависимость.
Размер при включенном vue
: 232 kB
Размер при общем vue
: 151 kB
В папке frontend-service
лежит модуль, собираемый Vite. Добиться правильной сборки в виде пока не удалось, не хватило времени донастроить плагин.
Заметки о встреченных проблемах лежат в notes
.