byteNative
Cloud & DevOps

Turborepo

Hochperformante Monorepos mit cleverem Build-Caching.

Was ist Turborepo?

Turborepo macht große Monorepos schnell, indem es Builds und Tests intelligent zwischenspeichert und nur das neu ausführt, was sich tatsächlich geändert hat. Es versteht die Abhängigkeiten zwischen deinen Paketen und führt unabhängige Aufgaben parallel aus, statt sie stur nacheinander abzuarbeiten. Der Clou ist der gemeinsame Remote-Cache. Was ein Kollege oder die CI schon gebaut hat, lädt jeder andere fertig herunter statt es erneut zu erzeugen. So bleibt auch ein Projekt mit vielen Paketen angenehm flott.

Mehr in der Dokumentation

Wofür wir es nutzen

In Monorepos mit mehreren Apps und geteilten Paketen ist Turborepo unser Werkzeug, um die Wartezeiten klein zu halten. Lokal und in der CI teilen wir denselben Remote-Cache, sodass ein unveränderter Teil nie zweimal gebaut wird. Gerade wenn dein Projekt wächst, ist das der Unterschied zwischen flüssigem Arbeiten und endlosem Warten auf grüne Pipelines.

json
{
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "test": {
      "dependsOn": ["build"]
    }
  }
}
build-task mit deklarierten outputs

Gut zu wissen

Der Cache ist nur so gut, wie deine Tasks ihre Inputs und Outputs deklarieren. Vergisst du eine Eingabedatei in der Konfiguration, liefert Turborepo fröhlich ein veraltetes Ergebnis aus dem Cache und du jagst einen Geisterfehler.

00Cloud & DevOps

Weitere Werkzeuge, mit denen wir im selben Bereich arbeiten.

Welche Technologie passt zu dir?

Das musst du nicht entscheiden, das ist unser Job. Erzähl uns einfach von deinem Vorhaben.