dima117 / staff2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

staff2

TODO

  • сборка TypeScript на сервере (nest) и клиенте

  • общий роутер для сервера и клиента (router5)

  • рендеринг компонентов на сервере

  • title и meta-тэги

  • подключение клиентских бандлов

  • code splitting и ленивая загрузка бандлов

  • redux + redux observable

  • загрузка страничных данных

  • корневой роут

  • инкрементальная сборка

  • рендеринг страниц ошибок (403, 404, 500, клиентские ошибки)

  • typed i18n

  • рендеринг в stream

  • настроить линтеры и автоформатирование

  • параллельный запуск всего

  • favicon

  • вынести настройки в конфиг

  • TVM

  • авторизация

  • поход в бэкенд с проверкой формата

  • error booster на клиенте и сервере

  • логирование

  • rum, Метрика, Baobab

  • эксперименты

  • модульные тесты

  • интеграционные тесты с новой Гермионой

  • опциональный анализатор бандлов в dev реиме

  • деплой

Code splittig + SSR

  1. webpack разбивает на бандлы, если встречает динамический импорт (динамические импорты не должны заменяться лоадерами на кастомные конструкции)
  2. на клиенте рендеринг в 2 этапа: сначала рендерим заглушку, загружаем бандл, рендерим вместо заглушки компонент
  3. на сервере рендеринг синхронный и нужно предзагружать бандл
  4. т.к. на сервере рендерится всё сразу, а на клиенте в 2 этапа, то при гидрации получаем ошибку о том, что серверный html не соответствует клиентскому. поэтомуна клиенте тоже нужно предзагрузить начальный бандл
  5. в общем случае, технически трудно узнать, что именно нужно предзагрузить, но если есть ограничение, что бандлы разбиваются по страницам, то можем загрузить бандл, т.к. знаем текущую страницу

About


Languages

Language:TypeScript 93.9%Language:JavaScript 4.2%Language:Handlebars 1.9%