最近由於公司業務需求,要對項目組件庫做爲一個獨立的項目庫來維護,可是又不影響現有目錄結構而且要易於平常多項目共同開發使用。html
例如目前有A、B、C、D四個項目,每一個項目都有一個組件庫,可是每一個組件庫的組件實際上是有至關一部分是重複的,所以想將組件提取出來做爲一個單獨的項目庫來維護, 避免每次更新組件都要到四個項目都改一遍。vue
在需求分析過程當中考慮了兩種方案:一種是Npm 私庫
,一種是Git Subtree
。下面會具體講做用、優缺點及使用方法。 在需求的實現過程當中以爲此需求很是有廣泛意義,所以將本次實現歷程整理分項出來,供你們最爲相關業務需求時的小小參考。git
+ Node
+ Vue項目(不限制必須是vue)
+ 使用Git管理項目(必要) 【 git Subtree 】
+ Verdaccio & pm2 【 npm私庫 】
複製代碼
在平常開發中咱們都install過無數個輪子,很好的解決了平常項目工做中可能會用到不少通用性的代碼,好比,框架類、工具類以及公用的業務邏輯代碼等等,若是npm庫裏有解決方案,咱們就能夠很開森的用輪子啦,可是npm的性質是開源的,總有一些業務是私密程度比較高的或者公司壓根就不容許將代碼開源的,這時候就須要在公司服務器架設本身的npm私有倉庫了。 相關知識:製做併發佈一個npm插件 做者:Y2shgithub
git subtree是git的一條子命令,咱們不用關注它具體釋義是什麼(參考百科),咱們只討論如何使用它來知足咱們的需求。 Git Subtree能夠將咱們如今的工程目錄中,選擇咱們指定的文件夾將其變成子倉庫,這樣這個目錄就能夠做爲一個獨立倉庫推送到其它項目倉庫中,來知足多個項目使用同一個組件庫的目的。而且它關聯到其餘項目指定目錄後,每一個項目下的組件目錄更新推送,其餘項目都會收到更新。npm
考慮到上述兩種方案的優缺點,最終決定在開發階段使用Git Subtree
來管理維護組件庫,上線後考慮使用Npm私庫
管理。做者在嘗試了兩種方案後選擇了以上三個教程做爲案例分享,描述都比較詳細或者直接明瞭(若有侵權,請聯繫做者刪除)。 須要注意的是:Git Subtree操做教程中編程
git subtree split -P SwiftyCrypto -b SwiftyCrypto
複製代碼
git subtree split -P ../weilan/src/components -b components
】