Wie man Abhängigkeiten verwaltet und Bibliotheken in React Eingeborene Projekte

Abhängigkeiten in React Native verstehen

Abhängigkeiten sind externe Bibliotheken oder Module, auf die Ihr Projekt angewiesen ist, um Funktionalität hinzuzufügen, die Entwicklung zu optimieren oder die Leistung zu verbessern. In React Native werden Abhängigkeiten typischerweise über npm oder garn verwaltet - JavaScript-Paketmanager, die Bibliotheksinstallation, Updates, Versionskontrolle und manchmal sogar native Codeverknüpfung übernehmen. Im Gegensatz zu einer Standard-Web-App bündeln React Native-Projekte häufig JavaScript-Abhängigkeiten neben nativen Abhängigkeiten (iOS CocoaPods, Android Gradle-Dateien), wodurch das Abhängigkeitsmanagement nuancierter wird.

Abhängigkeiten lassen sich in zwei Kategorien einteilen:

Die React Native Documentation enthält Details zur Initialisierung eines Projekts und seines Standardabhängigkeitsbaums.

Abhängigkeiten installieren

Um Ihrem React Native-Projekt eine neue Bibliothek hinzuzufügen, verwenden Sie den Befehl install des Paketmanagers.

npm install @react-navigation/native @react-navigation/stack

oder mit Garnen:

yarn add @react-navigation/native @react-navigation/stack

Nach der Installation erfordern einige Bibliotheken eine Verknüpfung von nativem Code. In React Native 0.60+ übernimmt die automatische Verknüpfung automatisch die meisten nativen Abhängigkeiten. Bestimmte Bibliotheken (insbesondere solche mit benutzerdefinierten nativen Ansichten oder SDKs von Drittanbietern) erfordern jedoch immer noch manuelle Schritte:

Überprüfen Sie immer die Installationsanleitung der Bibliothek – viele beliebte Bibliotheken führen Schritte nach der Installation durch, um Laufzeitabstürze zu vermeiden.

Verwendung von npx React-Native Link (Legacy)

Für Projekte, die React Native <0.60 verwenden, müssen Sie native Abhängigkeiten manuell mit verknüpfen. Dieser Befehl ändert Ihre Podfile und/oder . Wenn Sie ein Legacy-Projekt pflegen, sollten Sie die Migration zu einer Autolinking mit in Betracht ziehen.

Abhängigkeiten sparen

Standardmäßig speichern npm und garn installierte Pakete in Ihrer package.json Datei unter oder Abschnitt. Diese verfolgt alle Abhängigkeiten und ihre Versionsbereiche, um sicherzustellen, dass andere Entwickler oder Bereitstellungsumgebungen den gleichen Satz von Paketen mit einem einzigen Befehl installieren können ( oder .

Wenn Sie ein Paket installieren, ohne es explizit als Dev-Abhängigkeit zu markieren, wird es unter gespeichert.

npm install --save-dev package-name
yarn add --dev package-name

Die klare Trennung zwischen Laufzeit- und Entwicklerabhängigkeiten reduziert die Bündelgröße in der Produktion und verhindert die versehentliche Aufnahme von Build-Time-Dienstprogrammen in das App Store-Archiv.

Verwalten von Abhängigkeitsversionen

Die genaue Versionsbestimmung in Ihrem package.json hilft, unerwartete Probleme durch Updates zu vermeiden.

Bei Produktions-Apps sollten Sie Ihre direkten Abhängigkeiten an exakte Versionen (z. B. ) anheften, um versehentliche Bruchänderungen während der Bereitstellung zu vermeiden.

Lösung von Versionskonflikten

Wenn zwei Bibliotheken unterschiedliche Versionen desselben Pakets benötigen, können Peer-Abhängigkeitswarnungen oder Laufzeitfehler auftreten.

Bei React Native sollten Sie besonders auf widersprüchliche Versionen von , oder native Module wie achten. Inkonsistente Versionen können kryptische Fehler wie “Native module cannot be found” verursachen.

Aktualisierung von Abhängigkeiten

Die regelmäßige Aktualisierung von Abhängigkeiten ist für Sicherheit, Leistung und den Zugriff auf neue Funktionen von entscheidender Bedeutung.

Wenn Sie das Core-Paket React Native selbst aktualisieren (), folgen Sie immer dem offiziellen React Native Upgrade Guide und verwenden Sie , um Änderungen in den Vorlagendateien Ihres Projekts zusammenzuführen.

Automatisieren von Updates mit CI/CD

Richten Sie in einer Continuous Integration Pipeline einen Job ein, der regelmäßig oder ausführt, eine Pull-Anfrage für kleinere Updates erstellt und vollständige Testsuiten auslöst.

Entfernen nicht genutzter Abhängigkeiten

Wenn eine Bibliothek nicht mehr verwendet wird, entfernen Sie sie, um die Größe des Pakets zu reduzieren und die Wartung zu vereinfachen:

npm uninstall library-name
yarn remove library-name

Nicht verwendete Pakete können auch nach dem Entfernen in verbleiben, wenn sie transitive Abhängigkeiten waren.

Best Practices für Dependency Management

Umgang mit nativen Abhängigkeiten mit CocoaPods und Gradle

Führen Sie aus, um die Versionen nativer Pods zu sperren. Führen Sie aus, wenn Sie eine React Native-Bibliothek aktualisieren, um die neueste kompatible Pod-Version zu erhalten.

Verwendung von Monorepos mit React Native

Wenn Ihr Projekt ein Monorepo (z. B. Nx, Turborepo, Lerna) verwendet, verwalten Sie Abhängigkeiten auf Root-Ebene mit Workspaces.

Häufige Fallstricke und wie man sie vermeidet

Externe Ressourcen

Effektives Abhängigkeitsmanagement hilft dabei, Ihr React Native-Projekt sicher, effizient und wartbar zu halten. Die Umsetzung dieser Praktiken wird die Entwicklung rationalisieren, mögliche Probleme durch veraltete oder inkompatible Bibliotheken reduzieren und es Ihrem Team ermöglichen, sich auf die Erstellung von Funktionen zu konzentrieren, anstatt die Abhängigkeitshölle zu bekämpfen.