Kurz erklärt
Jede Anwendung wird zu einer eigenen App mit eigenem Startbefehl. Alle zeigen auf dasselbe Repository, aber auf verschiedene Verzeichnisse oder Befehle. Sie skalieren getrennt, haben eigene Umgebungsvariablen und eigene Adressen.
In der Praxis
- Das Basisverzeichnis je App setzen, damit der Build nur den passenden Teil baut.
- Gemeinsame Pakete gehören in ein geteiltes Verzeichnis, auf das beide zugreifen – der Build muss es mit einbeziehen.
- Nicht alles bei jedem Push neu bauen. Wenn sich nur die Website geändert hat, muss der Worker nicht neu deployen – sonst dauert jeder Push unnötig lang.
- Eine Sperrdatei für alle, damit alle Teile dieselben Abhängigkeitsversionen bekommen.
Bei Branchway
Lege je Anwendung eine App an, alle mit demselben Repository. Über das Basisverzeichnis und den Startbefehl unterscheiden sie sich. Jede hat eigene Umgebungsvariablen, eigene Größe und eigene Logs.
Häufige Fragen
Lohnt sich ein Monorepo?
Wenn Teile eng zusammenhängen und gemeinsam versioniert werden sollen, ja. Bei unabhängigen Projekten bringt es vor allem längere Bauzeiten.
Kann ich Worker und Web aus demselben Code betreiben?
Ja, das ist der häufigste Fall: zwei Apps, derselbe Quelltext, ein anderer Startbefehl – der Worker ohne öffentliche Adresse.