「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」
前言
项目太大了,维护团队又不只一个,然后管理又比较隔离,发版偶尔就会相互影响,合作不来,怎么办? 好办,项目拆了各维护各的,大家互不影响。
现状
整个项目有三个团队维护,财务团队,移动业务团队,基础业务团队,
-
功能页面
由于前期的框架设计还可以,项目功能页面文件夹正好是按三个大菜单来创建的,这让我们松了一口气。
-
组件库
这个都是放在compents下面,这个导致我们不知道哪些组件在哪个业务里有使用,有点尴尬。
-
路由
路由还好,都有各自的父路由,也是按三大菜单来创建的。
-
请求
这个和组件一样比较麻烦,各个模块都一些调用,很难拆分。
拆分
一翻争论妥协后,我们最后决定把项目拆成五个工程,
因为这个项目跑了一段时间,组件库可以说比较完善了,需要改动的地方不多了。所以我们直接将这个库上传到git上面,并将库发布到npm上。(其实这里也可以搭建自己的私有库,但相对而言,直接发布到npm上比较简单,毕竟我们基本不怎么需要改动。)这样我们可以和其他第三方库一样使用我们的组件库
而公共管理库是我们的基础库,在这库里面,我们将其他几个项目重新路由整合到一起,让用户对我们的拆分完全无感。(这是19年的项目,现今有可能拆分后采用微前端框架,但也会进行一个对比,这里就不谈了)
我们将登录页面放在公共库里面,这样在开发的时候下载自己对应的项目+公共库就可以了,公共库不可以修改,每个团队只能改自己的项目。(后面做的时候,各团队还是在自己的项目保留了登录页,免除了每次下公共库的麻烦)。
公共管理库其实很简单,就是将路由、请求进行一个合并。
库之间的链接,我们采用的是yarn workspace, 没有用npm link,yarn link 的原因,简单的说: yarn workspace 能解决相互依赖,并且所有package的依赖会安装在最根目录的node_modules下,节省磁盘空间,且给了yarn更大的依赖优化空间。