美文网首页
现代前端工程为什么越来越离不开 Monorepo?

现代前端工程为什么越来越离不开 Monorepo?

作者: Poppy11 | 来源:发表于2023-06-12 20:48 被阅读0次

    Monorepo

    Monorepo概念上很好理解,其实就是多个项目使用一个仓库来管理。
    Vue 3、Yarn、Npm7 等等知名开源项目的源码也是采用 Monorepo 的方式来进行管理的。

    一般 Monorepo 的目录如下所示,在 packages 存放多个子项目,并且每个子项目都有自己的package.json:

    ├── packages
    |   ├── pkg1
    |   |   ├── package.json
    |   ├── pkg2
    |   |   ├── package.json
    ├── package.json
    

    MultiRepo

    MultiRepo则就是一个项目一个仓库

    • 劣势
    1. 代码复用
      在维护多个项目的时候,肯定会有重复的逻辑,例如一些基础组件,工具函数,以及公共配置等,你可能会直接 copy代码,但有个问题是,如果这些代码出现 bug、或者需要做一些调整的时候,就得修改多份,维护成本越来越高。

      此时,你可能想到发布一个npm包。举个例子,比如你引入了 1.1.0 版本的 A 包,某个工具函数出现问题了,你需要做这些事情:

      • 去修改一个工具函数的代码
      • 发布1.1.1版本的新包
      • 项目中安装新版本的 A。
    2. 版本管理
      例如如我们上面所述,发布一个npm包,那么我们所有用到这个npm包的项目,我们都得挨个更新,很麻烦。

    3. 项目搭建
      在 MultiRepo 中,每个项目需要单独配置开发环境、配置 CI 流程、配置部署发布流程等等,这些逻辑都是重复的,如果是 10 个项目,就需要维护 10 份流程,逻辑重复不说,各个项目间存在构建、部署和发布的规范不能统一的情况,这样维护起来就更加麻烦了。

    使用案例

    相关文章

      网友评论

          本文标题:现代前端工程为什么越来越离不开 Monorepo?

          本文链接:https://www.haomeiwen.com/subject/ggpqydtx.html