简单了解波 Mono-repo & Multi-repo(Poly-repo)

Mono-repo 和 Multi-repo 是软件开发中代码管理的两个不同策略。Mono-repo & Multi-repo 孰优孰劣是个老生常谈得话题了,这里就不 PK 了,“略微”看下两者区别。

当我们使用 Git 作为版本控制系统管理项目的代码时,那么 monorepo 与 multirepo 的定义表述如下:

  • monorepo,使用一个 Git 仓库管理项目相关的多个 模块/包/功能/应用。
  • multirepo(又称为 polyrepo),使用多个 Git 仓库分别管理项目的每一个 模块/包/功能/应用。

Monorepo 的应用实例

GitHub 有很多的使用 Monorepo 风格管理代码的开源项目,比如大名鼎鼎的 Babel,项目结构如下图:

Babel GitHub Repo

packages 目录下存放了很多个 Babel 相关的子项目。

googles-monorepo-demo给出了一个基于 Maven 构建工具的 Google 风格的 Monorepo 项目。

还有大佬给出了有 CI/CD pipeline 基于 Java, Maven, GitHub Actions 的 Demo 👉 monorepo-maven-example

monorepo-maven-example-with-github-actions

使用工具快速搭建 Monorepo 风格的项目

现今,有许多可以创建 Monorepo 风格项目的工具,在前端社区有 Lerna、Nx、Rush Stack、Yarn Workspaces 等,还有许多其它的构建工具可以用于创建 Monorepo 风格的项目,见项目 -> awesome-monorepo。这里让我们看看通过 Nx 创建的 Monorepo 风格的项目是怎么样的:

Nx create project

project structure

medium 上有篇文章简述了 11 种不同 Monorepo 构建工具的特点:11 Great Tools for a Monorepo in 2021

一图看 Monorepo 和 Multirepo 的区别

这里我们用一张图来看下使用 Git 管理多个 package 时,Monorepo 和 Multirepo(Polyrepo) 的区别:

Monorepo & Multirepo(Polyrepo)

Don't say so much. 就这样了🤨🕊️,又水了一篇文章。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

相关推荐

  1. Mojo 语言了解

    2024-04-05 00:40:02       25 阅读
  2. Mongo 实现简单全文检索

    2024-04-05 00:40:02       42 阅读
  3. Mojo 编程语言简介

    2024-04-05 00:40:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 00:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 00:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 00:40:02       87 阅读
  4. Python语言-面向对象

    2024-04-05 00:40:02       96 阅读

热门阅读

  1. Linux 设备驱动管理之内核对象(Kernel Object)机制

    2024-04-05 00:40:02       40 阅读
  2. 69. x 的平方根

    2024-04-05 00:40:02       34 阅读
  3. linux小技巧(一)--文件比较

    2024-04-05 00:40:02       49 阅读
  4. OpenStack and Kolla Ansible Release

    2024-04-05 00:40:02       42 阅读
  5. MySQL常见故障与优化

    2024-04-05 00:40:02       41 阅读