这更像是一个奇怪的问题,而不是技术问题。在我的公司,我们有一个MVP,有很多angularjs组件,但现在,我们正在向有特殊需求的不同公司提供MVP。
以下是现实生活中的情况:
公司1
公司2
公司3
我们正在寻找适合我们未来业务模式的版本控制系统,因为正如我们所说,我们正在为不同的公司和其他分支机构使用分支机构来处理特定的组件功能。
你可以看到这已经变成了地狱。这很难维护,部署不同版本的应用程序更加困难。
如果我们为这个案例提出解决方案,我会很高兴分享我的发现。如果是这样的话,我会写一篇博文。
谢谢!
答案 0 :(得分:2)
您是否正在寻找流程指南或工具的管理?
从工具的角度来看,您可以使用npm,使用私有包服务,或者只使用某些私有git repo。鲍尔也可以这样做。
在Windows空间中有NuGet,你可以托管你的存储库,也可以为那里提供服务。
Git支持子模块和子树,但我个人不推荐它们。将依赖项作为实际git历史记录的一部分很复杂。
从流程角度来看,最重要的事情可能就是避免破坏变更。预先设计共享组件,以便在共享组件发生巨大变化时不必重新设计它,因为它不能像第一次构建时那样正常工作。
将您的共享模块视为开源项目。保持良好的文档,清洁代码,并遵守语义版本。将版本号应用于稳定版本(git标记它们以便它们易于检出)。让某人负责接受对组件的更改,以便他们可以跟踪其他人正在做的事情,并指导它的开发。
将它分成一个项目所需要的新包,与其他项目完全不同。维护具有太多不同要求的组件可能会成为一场噩梦。