如何为不同的项目版本和管理angularjs组件

如何为不同的项目版本和管理angularjs组件,angularjs,version-control,components,mvp,web-component,Angularjs,Version Control,Components,Mvp,Web Component,这与其说是一个技术问题,不如说是一个奇怪的问题。在我的公司,我们有一个MVP,其中包含许多angularjs组件,但现在,我们为不同的公司提供了MVP,这些公司有特定的需求 以下是现实生活场景中的场景: 公司1 单元1 单元2 单元3 公司2 模块1(具有特定功能或更改) 单元3 公司3 单元2 单元3 模块4(仅适用于本项目) 我们一直在寻找一个版本系统,它可以适合我们未来的商业模式,因为正如我们所说的,我们正在为不同的公司使用分支,并为特定的组件功能使用其他分支 你可以看到这已经

这与其说是一个技术问题,不如说是一个奇怪的问题。在我的公司,我们有一个MVP,其中包含许多angularjs组件,但现在,我们为不同的公司提供了MVP,这些公司有特定的需求

以下是现实生活场景中的场景:

公司1

  • 单元1
  • 单元2
  • 单元3
公司2

  • 模块1(具有特定功能或更改)
  • 单元3
公司3

  • 单元2
  • 单元3
  • 模块4(仅适用于本项目)
我们一直在寻找一个版本系统,它可以适合我们未来的商业模式,因为正如我们所说的,我们正在为不同的公司使用分支,并为特定的组件功能使用其他分支

你可以看到这已经变成了地狱。维护起来非常困难,部署不同版本的应用程序更是困难

如果我们能想出解决这个问题的办法,我很乐意与大家分享我的发现。如果是这样的话,我会写一篇博文


谢谢

您是否在寻找过程指导或工具的管理

从工具的角度来看,您可以使用npm,与他们的私有包服务一起使用,或者直接针对一些私有的git回购。鲍尔也可以这样做

在Windows空间中有NuGet,您可以为其托管存储库,或者也有服务

Git支持子模块和子树,但我个人不推荐它们。使依赖项成为实际git历史的一部分是复杂的

从流程的角度来看,最大的事情可能就是避免破坏更改。提前将精力投入到共享组件的设计中,这样当共享组件发生巨大变化时,您就不必重新设计它周围的一切,因为它没有按照第一次构建的方式正常工作

将共享模块视为开源项目。保持良好的文档、干净的代码,并遵守语义版本控制。将版本号应用于稳定的构建(git标记它们以便它们易于签出)。让某人负责接受对组件的更改,这样他们就可以跟踪其他人对组件的操作,并指导组件的开发


将其放入一个新的需求包中,一个项目的需求与其他项目的需求大不相同。维护一个有太多不同需求的组件可能会成为一场噩梦。

我完全同意,而且我已经想到了所有这些选项。您认为什么更便宜、更易于维护?Npm的优点是内置在节点生态系统中,并且可以很好地处理版本控制。Bower在git存储库中工作得更好,因为它可以读取git标记。如果您是一名以Windows为中心的开发人员,那么NuGet真的很不错,因为您可以使用asp.net在Windows服务器上建立一个完整的存储库,而成本不超过服务器本身(您可能已经拥有了)。他们几乎可以免费建立,但是NPM私人包列表可能是最方便的,每个用户每月花费大约7美元。谢谢,但是我正在寻找不同的东西,我还没有考虑到。我已经知道所有这些选项,但也许有一些高水平的东西我没有尝试过?我要继续挖。