Die perfekte Komponenten-Bibliothek?
Ich versuche mich gerade am Schaffen einer React-basierten Komponenten-Bibliothek für das Blog der Zukunft und vielleicht sogar noch viele andere Seiten. Ziel soll es sein, irgendwann mittels Lerna oder einem anderen Monorepo-Tool jede Komponente einzeln ziehen zu können, quasi so:
import Button from "@mrcgrtz/elements/button";
Mal schauen, ob mir das gelingt. Denn in der Firma haben wir gerade folgendes Problem: Wir haben eine von unseren React-Apps getrennte Komponenten-Bibliothek geschaffen, die zwar fürs Code Sharing wunderbar ist, aber nicht fürs Code Splitting – denn tatsächlich lädt man immer das komplette Bundle mit allen Komponenten. So hat man schnell ein paar hundert Kilobyte mit React-Komponenten, die man gerade gar nicht braucht.
Daher gibt es nun zwei Ideen: Die erste Idee ist, das „Haupt-App“-Repo mit dem Komponenten-Repo zusammen zu packen. Mal abgesehen davon, dass eine Git-Historie dann sicher flöten geht und ich sowas ganz, ganz schlimm finde, verlieren wir so auch den Sharing-Vorteil – allerdings ist das sicher auch der schnellste Weg. Und den kenne ich so quasi schon von weg.de, wo wir das Frontend in einem einzelnen Repository hatten. Die andere Idee ist die eines Monorepos für Komponenten und sich so nur das zu ziehen, was man braucht.
Das hoffe ich jedenfalls. Ich werde also wohl mal ein paar Dinge ausprobieren.