#DEVELOPMENT
05. Juli 2024
2 min Lesezeit
Es stellt eine ständige Herausforderung dar, Code in großen Projekten zu organisieren und zu verwalten, besonders in Monorepo-Strukturen, wo sämtlicher Code in einem einzigen Repository liegt. Solche Konstellationen bringen schnell Schwierigkeiten mit sich. Ein prägnantes Beispiel hierfür sind Projekte, die auf die Kombination von Strapi und Next.js setzen. Wir sind auf das Problem gestoßen, dass unterschiedliche Versionen von React zu Komplikationen führten. Die Bewältigung dieses Problems erforderte ein umständliches Hantieren mit Ausnahmen und Resolutions in den package.json-Dateien, was wiederum die Wartung erheblich erschwerte.
Der Wechsel zu einem neuen System
Um diese Herausforderungen zu bewältigen, haben wir uns für einen neuen Ansatz entschieden: den Übergang zu einem Pseudo-Workspace-Projekt, unterstützt durch die Tools pnpm und concurrently. Aber warum gerade diese Kombination?
Die Herausforderungen und Lösungen
Die Umstellung auf dieses System erfordert anfangs mehr Aufwand. Skripte müssen angepasst und Projektkonfigurationen geändert werden, um die Vorteile von pnpm voll auszuschöpfen. Doch die Vorteile überwiegen:
Technischer Anhang: Ein praktisches Beispiel
Um die praktische Anwendung unseres neuen Ansatzes zu verdeutlichen, stellen wir dir ein konkretes Codebeispiel vor. Dieses Skript zeigt, wie du in einem Pseudo-Workspace-Projekt mit pnpm und concurrently verschiedene Entwicklungs-Server parallel starten kannst.
Das Skript im Detail:
Erklärung des Skripts:
Dieses Skript ermöglicht eine effiziente und flexible Entwicklungsumgebung, in der Änderungen an verschiedenen Teilen eines Projekts gleichzeitig und unabhängig voneinander bearbeitet werden können. Die parallele Ausführung spart Zeit und erleichtert die Arbeit in komplexen Projekten erheblich.
Fazit
Die Umstellung auf ein Pseudo-Workspace-Projekt mit pnpm und concurrently bietet langfristig zahlreiche Vorteile. Trotz des initialen Mehraufwands verbessert dieser Ansatz die Wartbarkeit, Effizienz und Kompatibilität des Projekts. Für große und komplexe Projekte ist diese Umstellung daher eine sinnvolle Entscheidung.