Monorepo

DevOps 🟡 Mid

Définition

Stratégie de dépôt unique contenant plusieurs projets/packages. Outils comme Nx, Turborepo ou Lerna gèrent les dépendances et les builds.

Analogie

Un centre commercial : tous les magasins (projets) sous le même toit avec des infrastructures partagées.

Exemple de code

// turbo.json (Turborepo 2 : la clé "pipeline" est devenue "tasks")
{
  "$schema": "https://turborepo.dev/schema.json",
  "tasks": {
    "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
    "test":  { "dependsOn": ["build"] }
  }
}

Cas d'usage

Partager du code entre frontend, backend et libs avec des dépendances atomiques.

Anti-pattern

Monorepo sans outil de build incrémental : le CI rebuild tout à chaque commit.
#devops#git#interview

En entretien

  1. Explique-moi ce qu'est un monorepo.

    C'est une stratégie de dépôt unique contenant plusieurs projets ou packages, avec des outils comme Nx, Turborepo ou Lerna qui gèrent les dépendances et les builds. Ça permet de partager du code entre frontend, backend et libs avec des dépendances atomiques.

  2. Quel anti-pattern rend un monorepo ingérable ?

    Un monorepo sans outil de build incrémental fait que le CI rebuild tout à chaque commit, même les parties non modifiées. Un centre commercial partage les infrastructures, mais chaque magasin doit pouvoir être livré indépendamment.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre