我正在努力为软件项目设计一个好的结构。它需要支持以下内容:
- 该项目包含多个子项目。
- 子项目包括要在单个服务器上运行的后端或代理代码(请考虑微服务- ish )。
- 子项目具有由所述服务器提供的客户端代码。
- 子项目共享一个通用的ui组件库(可以是另一个子项目)。
- 子项目共享一个通用的中央配置(也可以是另一个子项目)。
到目前为止,像Lerna这样的Monorepo解决方案似乎是前进的方向,但是:
- 一些子项目需要外包给应该具有读取但不具有对共享元素的 SOME 的WRITE访问权限的第三方开发人员。
下面是一个图:
- ui-lib
- config
- 模块A
- 模块A-后端(需要配置)
- 模块A-前端(需要ui-lib)
- 模块B(为保密起见,需要存放在单独的存储库中)
- 模块B-后端(需要 some 配置)
- 模块B-前端(需要ui-lib)
有什么想法吗?也许我应该有两个单独的配置,私有和公共?