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

Posted

技术标签:

【中文标题】如何为不同的项目版本和管理 angularjs 组件【英文标题】:How to version and manage angularjs components for different projects 【发布时间】:2016-06-17 17:24:13 【问题描述】:

这是一个奇怪的问题,而不是技术问题。在我的公司中,我们有一个包含许多 angularjs 组件的 MVP,但现在,我们正在向具有特定需求的不同公司提供 MVP。

这是它在现实生活场景中的样子:

公司 1

模块 1 模块 2 模块 3

公司 2

模块 1(具有特定功能或更改) 模块 3

公司 3

模块 2 模块 3 模块 4(仅适用于本项目)

我们一直在寻找适合我们未来业务模型的版本控制系统,因为正如我们所说,我们正在为不同的公司使用分支机构,并为特定的组件功能使用其他分支机构。

你可以看到这已经变成了地狱。它真的很难维护,部署不同版本的应用程序更难。

如果我们对此案提出解决方案,我将很高兴分享我的发现。如果是这样,我会写一篇博文。

谢谢!

【问题讨论】:

【参考方案1】:

您是否正在寻找流程指南或工具的管理?

从工具的角度来看,您可以将 npm 与他们的私有包服务一起使用,或者只是针对某些私有 git 存储库。 Bower 也可以这样做。

在 Windows 空间中,您可以使用 NuGet 来托管您的存储库,或者也有适用于此的服务。

Git 支持子模块和子树,但我个人并不推荐它们。将依赖项作为实际 git 历史记录的一部分很复杂。

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

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

将其分叉到一个项目的新需求包中,与其他项目有很大不同。维护具有太多不同要求的组件可能会成为一场噩梦。

【讨论】:

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

以上是关于如何为不同的项目版本和管理 angularjs 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Java、C# 和 C++ 中一个项目的不同实现管理一份一致的文档? [关闭]

如何为不同的 SDK 目标管理同一类文件的多个版本?

如何为基于 Typescript 的 AngularJS 项目配置 SonarQube?

Xcode:如何为指向两个不同团队帐户(企业和公司)的两个不同目标选择两个不同的应用程序组

如何为不同的 SQL Server 文件夹运行相同的 angularjs 应用程序(.NET MVC 5)?

如何为angularjs分离不同文件中的控制器?