React Native

Monorepo & Code-Sharing

Yarn workspaces, nx, shared packages, React Native Web, Strategien zur Code-Wiederverwendung

18 Interview-Fragen·
Senior
1

Was ist ein Monorepo im Kontext der React-Native-Entwicklung?

Antwort

Ein Monorepo ist eine Architektur, bei der mehrere Projekte oder Packages in einem einzigen Git-Repository gespeichert werden. Im React-Native-Kontext ermöglicht dies das Teilen von Code zwischen einer mobilen App, einer Web-App (React Native Web) und Utility-Packages. Zu den Vorteilen zählen zentralisierte Abhängigkeitsverwaltung, atomare Refactorings und Code-Konsistenz über Plattformen hinweg.

2

Was ist die Hauptaufgabe von Yarn workspaces in einem React-Native-Monorepo?

Antwort

Yarn workspaces ermöglichen die Verwaltung mehrerer Packages in einem einzigen Repository mit einem einzigen hoisted node_modules im Root-Verzeichnis. Dies reduziert die Duplizierung von Abhängigkeiten, ermöglicht automatisches Symlinking zwischen lokalen Packages und erleichtert globale Skripte. In einem React-Native-Monorepo können so geteilte Packages automatisch sowohl mit der mobilen als auch der Web-Anwendung verknüpft werden.

3

Wie konfiguriert man ein einfaches Monorepo mit Yarn workspaces für React Native?

Antwort

Die Grundkonfiguration erfordert ein root-package.json mit dem workspaces-Feld, das die Package-Patterns definiert. Typischerweise wird packages/* oder apps/* für Anwendungen und packages/* für geteilte Bibliotheken verwendet. Das private-Feld muss auf true gesetzt werden, um die versehentliche Veröffentlichung des Root-Packages zu verhindern. Der Metro bundler benötigt zudem eine Konfiguration, um Symlinks korrekt aufzulösen.

4

Welches Problem kann das Hoisting von Abhängigkeiten in einem React-Native-Monorepo verursachen?

5

Was ist Nx und welchen Hauptvorteil bietet es gegenüber Yarn workspaces allein?

+15 Interview-Fragen

Meistere React Native für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten