在项目开发过程当中,如何多人维护一个被多个项目使用的公共组件库的管理方案

在项目开发过程当中,如何多人维护一个被多个项目使用的公共组件库的管理方案

简介

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

例如目前有A、B、C、D四个项目,每一个项目都有一个组件库,可是每一个组件库的组件实际上是有至关一部分是重复的,所以想将组件提取出来做为一个单独的项目库来维护, 避免每次更新组件都要到四个项目都改一遍。vue

在需求分析过程当中考虑了两种方案:一种是Npm 私库,一种是Git Subtree。下面会具体讲做用、优缺点及使用方法。 在需求的实现过程当中以为此需求很是有广泛意义,所以将本次实现历程整理分项出来,供你们最为相关业务需求时的小小参考。git

PS:本人github,欢迎交友

工程环境

+ Node
+ Vue项目(不限制必须是vue)
+ 使用Git管理项目(必要) 【 git Subtree 】
+ Verdaccio & pm2 【 npm私库 】
复制代码

需求分析

  1. 多个项目共同开发,可是依赖某些相同的组件
  2. 在不一样项目修改组件要自动同步到全部项目
  3. 要易用安全,而且尽量的节省开发过程当中的时间,不能增长学习成本或时间成本

方案一:Npm私库

在平常开发中咱们都install过无数个轮子,很好的解决了平常项目工做中可能会用到不少通用性的代码,好比,框架类、工具类以及公用的业务逻辑代码等等,若是npm库里有解决方案,咱们就能够很开森的用轮子啦,可是npm的性质是开源的,总有一些业务是私密程度比较高的或者公司压根就不容许将代码开源的,这时候就须要在公司服务器架设本身的npm私有仓库了。 相关知识:制做并发布一个npm插件 做者:Y2shgithub

优势

  1. 和平常npm install操做相同,简单易用
  2. 一次架设成本,后续直接使用便可,人员更换及人员水平变更没有影响
  3. 组件修改发布后,全部项目都能使用,而且能够指定版本

缺点

  1. 平常开发不便,须要将组件更新发布任何项目更新组件版本后才能看到效果

Npm私库使用教程 做者:Better

方案二:Git Subtree

git subtree是git的一条子命令,咱们不用关注它具体释义是什么(参考百科),咱们只讨论如何使用它来知足咱们的需求。 Git Subtree能够将咱们如今的工程目录中,选择咱们指定的文件夹将其变成子仓库,这样这个目录就能够做为一个独立仓库推送到其它项目仓库中,来知足多个项目使用同一个组件库的目的。而且它关联到其余项目指定目录后,每一个项目下的组件目录更新推送,其余项目都会收到更新。npm

优势

  1. 跟git的多人协做同理,关联后一个项目更新全部项目均可以收到推送
  2. 无需更改现有工程目录
  3. 组件更新所见即所得,调试效果拉满

缺点

  1. 多人协做,多项目关联,随意性较高,可能改本项目无心间影响了全部项目,所以使用必须给全部成员作培训说明
  2. 必须是使用git管理的项目
  3. 须要必定git相关知识,而且命令较长相对复杂

Git Subtree说明 做者:好好编程

Git Subtree操做教程 做者:库机戴娃

最终方案

考虑到上述两种方案的优缺点,最终决定在开发阶段使用Git Subtree来管理维护组件库,上线后考虑使用Npm私库管理。做者在尝试了两种方案后选择了以上三个教程做为案例分享,描述都比较详细或者直接明了(若有侵权,请联系做者删除)。 须要注意的是:Git Subtree操做教程编程

git subtree split -P SwiftyCrypto -b SwiftyCrypto
复制代码
  1. 首先应在项目根目录执行此命令
  2. -P 后面为原项目工程目录路径 -b为要提取出来的位置路径! 【做者在使用中是git subtree split -P ../weilan/src/components -b components
相关文章
相关标签/搜索