我们已经在堆栈react + ts + css-modules上启动了具有不同主题的新项目。 对于CSS主题,我们使用了context和useContext挂钩,但是我们确实需要找到一种惯用的方式来实现提供不同布局(JSX组件)的能力。
目前,我看到2个变体: 1)动态导入(当我上次尝试这种方法时效果不佳)时,我正在尝试使用这种技术来依赖于env变量来导入“主题”组件。
process.env.theme ? import(`src/header/themes/${process.env.theme}.tsx`) : import(`src/header/header.tsx`)
但是webpack开始抱怨不存在文件。
2)通过上下文渲染道具: 我们可以从组件中提取所有“可渲染”项,并通过上下文传递它,但是我不知道如何在不重写所有组件的情况下巧妙地做到这一点
3)monorepos(如lerna / yarn工作区)可以解决这个问题吗?
也许有一些指南| github项目|建议?
谢谢。