最近由于公司业务需求,要对项目组件库做为一个独立的项目库来维护,可是又不影响现有目录结构而且要易于平常多项目共同开发使用。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
】