Мы запустили новый проект с разными темами, по стеку реагируют + ts + css-модули. Для создания CSS-тем мы использовали ловушки context и useContext, но нам действительно нужно найти идиоматический способ реализовать возможность предоставлять разную компоновку (компоненты JSX).
На данный момент я вижу 2 варианта: 1) Динамический импорт(когда я пробовал это в прошлый раз, это не работает хорошо), я пробовал эту технику для импорта компонента "тема" полагаться на переменную env следующим образом.
process.env.theme ? import(`src/header/themes/${process.env.theme}.tsx`) : import(`src/header/header.tsx`)
но запуск веб-пакета жаловаться несуществующий файл.
2) рендеринг реквизита через контекст: мы можем извлечь все «визуализируемые» элементы из наших компонентов и передать его через контекст, но я не могу понять, как мы можем сделать это умно, не переписывая все нашикомпоненты
3) Могут ли помочь монорепо (например, рабочие пространства lerna / yarn)?
Может быть, есть какие-то руководства | проекты github | советы?
Спасибо.