当前位置: 首页 > 后端技术 > Node.js

多项目并行开发的公共资源处理:GitSbutree拆解子仓库

时间:2023-04-03 17:27:38 Node.js

项目开发过程中,如何维护多个项目使用的公共组件库不影响现有目录结构,便于日常多项目联合开发使用。比如目前有A、B、C、D四个项目,每个项目都有一个组件库,但是每个组件库中有相当一部分组件其实是重复的,所以想把组件单独提取出来要维护的项目库,以避免每次更新组件时更改所有四个项目。在需求分析过程中考虑了两种方案:一种是Npm私有库,一种是GitSubtree。下面将详细讨论它们的功能、优点和缺点以及如何使用它们。在实现需求的过程中,感觉这个需求很普遍,所以把实现过程梳理出来,在和你的业务需求最相关的时候分项供大家参考。gitSubtree对于拆分整体应用程序存储库也非常有效。PS:我的github,欢迎交友工程环境+Node+Vue项目(不限于vue)+使用Git管理项目(必备)【git子树】+Verdaccio&pm2【npm私有库】需求分析多个项目联合已开发,但依赖于不同项目中的一些相同组件,修改组件自动同步到所有项目。应该简单易用、安全,在开发过程中尽可能节省时间,不增加学习成本或时间成本。方案一:日常开发中的npm私有库我们都装了无数个轮子,解决了很多日常项目工作中可能用到的通用代码,比如框架类、工具类、常用的业务逻辑代码等。如果npm库中有解决方案,我们可以很光明正大的用轮子,但是npm的本质是开源的。总有一些业务比较私有或者公司不允许代码开源。这时候我们就需要在公司服务器上架设自己的。npm私有仓库。相关知识:制作并发布一个npm插件作者:Y2sh优点和日常npminstall操作一样,简单易用一次性设置成本,后续直接使用可以直接使用,人员更换和人员级别变动都会不影响组件修改发布后,所有项目都可以使用,并且可以指定版本缺点日常开发不方便,需要更新组件发布任何项目更新组件版本才能看到效果它的具体定义是什么(参考维基百科),我们只讨论如何使用它来满足我们的需求。GitSubtree可以在我们当前的项目目录下选择我们指定的文件夹,将其变成一个子仓库,这样就可以将这个目录作为一个独立的仓库推送到其他的项目仓库中,以满足多个项目使用同一个组件库的目标。并且关联到其他项目的指定目录后,推送每个项目下的组件目录更新,其他项目接收更新。优点和git的多人协作一样。关联项目后,可以更新所有项目。无需更改现有项目目录。组件更新所见即所得,调试效果满分。更高,有可能更改此项目无意中影响了所有项目,因此在使用时必须对所有成员进行培训说明。git管理的项目需要一定的git相关知识,命令比较长,也比较复杂。demo的使用方法|-----app1|---components|----app2|---components当多个工程从仓库中导出时,那么必然有组件库、样式库、工具类的部分等需要重复使用的。这个时候如果想把这部分提取出来供多个项目共用怎么办?百度多将仓库下的子目录拆分成子仓库,喜欢重名造成混淆。这里详细解释子组件库的拆分方法。步骤如下:将仓库拆分到仓库根目录gitsubtreesplit-P./app1/components-bpublic-lib新建仓库文件夹,初始化gitmkdirpublic-libcdpublic-libgitinit为拉取仓库代码到新的组件仓库!gitpull../../demopublic-lib"../../demo"是原项目的仓库目录,因为拆分的时候已经指定了拆分路径,所以这里要注意的是原仓库存在位置“public-lib”为新仓库名称。注:写这个是为了直观的解释这句话的意思,就是从原来的仓库pull到新的仓库。GitSubtree说明作者:编程好GitSubtree操作教程作者:Library考虑到以上两种方案的优缺点,Jidaiwa最终决定在开发阶段使用GitSubtree来管理和维护组件库,并考虑使用Npm上线后私人图书馆管理。笔者在尝试了两种方案后,选择了以上三个教程作为案例分享,并且描述的比较详细或者通俗易懂(如有侵权,请联系作者删除)。