2016-03-04 72 views
5

這是一個比技術更奇怪的問題。在我的公司,我們有一個MVP,它有很多的angularjs組件,但現在,我們正在向具有特定需求的不同公司提供MVP。如何爲不同的項目版本和管理angularjs組件

下面是它看起來像在真實的生活場景:

公司1

  • 模塊1
  • 模塊2
  • 模塊3

公司2

  • 模塊1(具有特定功能或改變)
  • 模塊3

公司3

  • 模塊2
  • 模塊3
  • 模塊4(只適用於這個項目)

我們正在尋找一種適合我們未來業務模式的版本控制系統,因爲我們說,我們使用分支機構爲不同公司和其他分支機構提供特定組件功能。

你可以看到這變成了地獄。這很難保持,部署不同版本的應用程序更加困難。

如果我們爲這種情況提出解決方案,我將很高興分享我的研究結果。如果是這樣的話,我會寫博客文章。

謝謝!

回答

2

您是否在尋找過程指導或工具的管理?

從工具的角度來看,您可以使用npm,使用它們的私有包服務或者直接指向某個私有git回購。鮑爾也可以這樣做。

在Windows空間中有NuGet,您可以託管您的存儲庫或者那裏也有服務。

Git支持子模塊和子樹,但我個人不推薦它們。使依賴關係成爲你實際的git歷史的一部分是複雜的。

從流程角度來看,最大的問題可能就是避免重大更改。將前面的努力放在共享組件的設計上,這樣當共享組件發生巨大變化時,您不必重新設計共享組件的所有內容,因爲它無法像第一次構建時那樣工作。

將您的共享模塊視爲開源項目。保持良好的文檔,清理代碼並遵守語義版本控制。將版本號應用到穩定的版本(git標記它們以便於檢查)。讓負責接受組件更改的人員,以便他們可以跟蹤其他人正在做的事情並指導其發展。

把它分解成一個項目所要求的新包,與其他項目有很大不同。維護具有太多不同要求的組件可能成爲一場噩夢。

+0

我完全同意,我已經想到了所有這些選項。你覺得它更便宜,更易維護? –

+0

Npm具有內置於節點生態系統中的優勢,並能很好地處理版本控制。 Bower使用git存儲庫更好一些,因爲它讀取git標籤。如果你是一個以Windows爲中心的開發人員,那麼NuGet非常好,因爲你可以使用asp.net在Windows服務器上建立一個完整的存儲庫,而不會比服務器本身(你可能已經擁有)花費更多。他們幾乎都可以免費安裝,但npm私人包裹清單可能是最便捷的,每位用戶每月大約需要7美元。 – nbering

+1

謝謝,但我正在尋找不同的東西,我還沒有考慮過。我已經知道所有這些選擇,但也許有一些我沒有嘗試的高水平?我會繼續挖掘。 –