Înțelegerea dependențelor în reactivarea nativilor

Dependentele sunt biblioteci sau module externe pe care proiectul se bazează pentru a adăuga funcționalitate, a simplifica dezvoltarea sau a îmbunătăți performanța. În React Native, dependențele sunt de obicei gestionate prin NPM sau fire de fire

Dependenţele se încadrează în două categorii:

  • Dependențe JavaScript
  • Dependențele native

Documentaţia Nativă React oferă detalii privind iniţializarea unui proiect şi arborele său dependent implicit.

Instalarea dependențelor

Pentru a adăuga o nouă bibliotecă la proiectul dvs. React Native, folosiţi comanda de instalare a managerului de pachete. De exemplu, pentru a instala react-navigation, executaţi:

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

sau cu fire:

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

După instalare, unele biblioteci necesită conectarea codului nativ. În React Native 0.60+, auto-linking se ocupă automat de cele mai multe dependențe native. Cu toate acestea, anumite biblioteci (în special cele cu vederi native personalizate sau SDK-uri terțe parte) încă necesită pași manuali:

  • Pentru iOS: a alerga sau pentru a instala capsulele de cacao.
  • Pentru Android: biblioteca este unificat automat, dar este posibil să fie nevoie să adăugați un depozit sau să modificați ] dacă biblioteca reacționează pachetul Native este [t înregistrat automat.

Verificați întotdeauna ghidul de instalare bibliotecă

Pentru proiecte care utilizează React Native <0.60, trebuie să conectați manual dependențele native cu . Această comandă modifică fişierul dvs. Pod și/sau . Dacă vă mențineți un proiect moștenitor, luați în considerare migrarea la auto-linking cu .

Salvarea dependențelor

În mod implicit, npm și fire salvează pachetele instalate în secțiunea pachet.json[] sau ]. Aceasta ține evidența tuturor dependențelor și a gamelor de versiuni ale acestora, asigurându-se că alți dezvoltatori sau medii de desfășurare pot instala același set de pachete cu o singură comandă [ sau .

Atunci când instalați un pachet fără a-l marca în mod explicit ca dependență de dev, acesta este salvat sub . Pentru instrumentele utilizate numai în timpul dezvoltării (de exemplu, , , , utilizați:

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

Menținerea unei separări clare între timpul de funcționare și dependențele dev reduce dimensiunea pachetului în producție și previne includerea accidentală a utilităților în timp-construire în arhiva magazinului de aplicații.

Gestionarea versiunilor dependenței

Specificarea versiunilor exacte în pachetul Json ajută la prevenirea problemelor neprevăzute cauzate de actualizări. Puteți utiliza versiunea semantică (semver) pentru a controla actualizările:

Pentru aplicații de producție, fixați dependențele directe în versiunile exacte (de exemplu, ) pentru a evita modificările accidentale de rupere în timpul implementării. Utilizați un fișier de blocare [] sau ]) pentru a garanta că fiecare instalare produce arbori identici .

Rezolvarea conflictelor versiunii

Când două biblioteci necesită versiuni diferite ale aceluiași pachet, puteți întâlni avertismente de dependență de colegi sau erori de funcționare. Instrumente pentru rezolvarea conflictelor:

  • npm ls pachet-name
  • yarn why pachețel-name]
  • npm dedupe / yarn-deduplicate

Pentru React Native, acordaţi o atenţie suplimentară versiunilor contradictorii ale , [, sau modulelor native precum . Versiunile inconsistente pot cauza erori criptice cum ar fi modulul nativ nu pot fi găsite.

Actualizarea dependențelor

Actualizarea regulată a dependențelor este esențială pentru securitate, performanță și acces la noi caracteristici.

  • Actualizări ale minor/ patch-ului: ] sau
  • Actualizări majore: bump manual versiunea în și rulați . Revizuiți jurnalul de schimb bibliotecă pentru ruperea API.
  • Modernizare interactivă: utilizare (instalată separat) pentru a vedea care pachete au cele mai recente versiuni, apoi actualizarea selectivă.

Atunci când actualizați nucleul React Native în sine ([]) urmați întotdeauna oficial Reacționați ghidul de actualizare Nativ și utilizați pentru a fuziona modificările în fișierele șablon de proiect. Testați cu atenție atât pe simulatoarele iOS cât și pe simulatoarele Android și dispozitivele reale după orice actualizare majoră.

Actualizări automate cu CI/CD

Într-o conductă de integrare continuă, se instituie un loc de muncă care rulează ] sau periodic, creează o cerere de tragere pentru actualizări minore, și declanşează suite complete de testare. Acest lucru previne putregai dependența în timp ce menținerea unui mediu stabil.

Înlăturarea dependențelor neutilizate

Atunci când o bibliotecă nu mai este utilizată, eliminați-o pentru a reduce dimensiunea pachetului și a simplifica întreținerea:

npm uninstall library-name
yarn remove library-name

Pachetele neutilizate pot persista în chiar și după îndepărtarea lor dacă erau dependențe tranzitive. Executați sau pentru a șterge pachetele străine. Pentru o curățare mai aprofundată, gândiți-vă:

  • depcheck
  • npx react-native unlink librarie-numele (legacy)

Cele mai bune practici pentru managementul dependenței

  • Revizualizează și actualizează dependențele. Programează o verificare lunară
  • Păstrați dependențele la minimul necesar. Evitați
  • Folosiți versiunea semantică pentru a controla actualizările. Versiuni majore și vă bazați pe fișiere de blocare pentru reproductibilitate.
  • Testați cu atenție după actualizarea dependențelor. Testați unitățile, teste de integrare și teste UI manuale pe ambele platforme. Fiți atenți la comportamentul modificat al modulului nativ.
  • Mențineți un fișier curat și blocați fișierele.[ Evitați editarea manuală care poate introduce inconsecvențe.Comiteți ]] sau la controlul versiunii pentru a asigura instalarea identică în medii.
  • Preferă fire peste npm dacă aveți nevoie de instalaţii deterministe şi spaţii de lucru. Fire Berry (v2+) oferă Plug'n'Play, care poate accelera instalaţiile, dar pot necesita verificări de compatibilitate cu React Native.
  • Folosiți pentru a diagnostica dependența comună și problemele de mediu înainte de depanare.

Manipularea dependențe native cu cacaoPod-uri și Gradle

Pentru iOS, întotdeauna se angajează să blocheze versiunile de păstăi native. Rulați ] atunci când actualizați o bibliotecă Nativă React pentru a obține cea mai recentă versiune compatibilă pod. Pentru Android, asigurați-vă că ] dumneavoastră nu are valori contradictorii ] sau ] în biblioteci.

Utilizarea monorepos cu reactiv nativ

Dacă proiectul dumneavoastră utilizează un monorepo (de exemplu, Nx, Turborepo, Lerna), gestionaţi dependenţele la nivelul rădăcinii cu spaţii de lucru. Aveţi grijă cu arborarea

Capturi comune şi cum să le evităm

  • iOS construiește nu reușește după adăugarea unei biblioteci: Asigurați-vă că ați fugit și că biblioteca podfile este corect descifrat. Verificați Xcode busteni construi pentru
  • Accidentul Android pe timp de rulare din cauza modulului nativ lipsă: Verificați dacă pachetul de bibliotecă ți-a fost înregistrat automat sau că ai adăugat manual în .
  • Conflicte de simbol sau metodă duplicate: Utilizați și rezolvați codurile native contradictorii prin modernizarea sau degradarea uneia dintre biblioteci.

Resurse externe

Managementul eficient al dependenței ajută la menținerea proiectului Nativ React în siguranță, eficient și întreținerea. În urma acestor practici, va raționaliza dezvoltarea, va reduce problemele potențiale cauzate de bibliotecile depășite sau incompatibile și va permite echipei tale să se concentreze pe construirea de caracteristici, în loc să lupte împotriva iadului dependență.