Come Gestire Dipendenze e Biblioteche in React Progetti nativi
Comprendere le dipendenze in React Native
Le dipendenze sono librerie o moduli esterni che il vostro progetto si basa su per aggiungere funzionalità, sviluppo semplificato, o migliorare le prestazioni. In React Native, le dipendenze sono tipicamente gestiti tramite npm o filato – JavaScript package manager che gestiscono l'installazione della libreria, aggiornamenti, controllo della versione e talvolta anche il collegamento di codice nativo.
Le dipendenze rientrano in due categorie:
- dipendenze javaScript[[] – librerie JS pure (ad esempio ], []]) che funzionano senza alcuna configurazione nativa.
- Native dependencies[[] – librerie che richiedono il collegamento al codice nativo (ad esempio [], ]]]), che spesso necessitano di ulteriori passaggi di configurazione come ] o modifiche manuali di Gradle.
La documentazione relativa ai nativi[[] fornisce dettagli sull'inizializzazione di un progetto e sulla sua dipendenza predefinita.
Installazione delle dipendenze
Per aggiungere una nuova libreria al tuo progetto React Native, utilizzare il comando di installazione del gestore del pacchetto. Ad esempio, installare react-navigation, eseguire:
npm install @react-navigation/native @react-navigation/stack
o con filato:
yarn add @react-navigation/native @react-navigation/stack
Dopo l'installazione, alcune librerie richiedono il collegamento di codice nativo. In React Native 0.60+, il collegamento automatico gestisce automaticamente la maggior parte delle dipendenze native. Tuttavia, alcune librerie (specialmente quelle con visualizzazioni native personalizzate o SDK di terze parti) richiedono ancora passaggi manuali:
- Per iOS: eseguire o ] per installare i pod CocoaPods.
- Per Android: la libreria ] viene automaticamente fusa, ma potrebbe essere necessario aggiungere un [ repository o modificare ] se il pacchetto React Native della libreria non è automaticamente registrato.
Controllare sempre la guida di installazione della libreria – molte librerie popolari passo dopo-installazione per evitare crash runtime.
Utilizzo di npx reagiscono-nativo link (Legacy)
Per i progetti che utilizzano React Native <0.60, è necessario collegare manualmente le dipendenze native con [. Questo comando modifica il Podfile e/o . Se si mantiene un progetto legacy, si considera la migrazione a collegamento automatico con .
Risparmio di dipendenze
Per impostazione predefinita, npm e filato salvano i pacchetti installati al tuo [package.json[] file sotto la sezione [] o ]]. Questo mantiene traccia di tutte le dipendenze e le loro gamme di versione, assicurando che altri sviluppatori o ambienti di distribuzione possono installare lo stesso set di pacchetti con un singolo comando ( o [[[[[FLT]
Quando si installa un pacchetto senza marcarlo esplicitamente come una dipendenza da dev, viene salvato sotto []]. Per gli strumenti utilizzati solo durante lo sviluppo (ad esempio, [, , ), utilizzare:
npm install --save-dev package-name
yarn add --dev package-name
Mantenere una chiara separazione tra runtime e dipendenze di sviluppo riduce la dimensione del pacchetto nella produzione e impedisce l'inclusione accidentale di utilità di build-time nell'archivio dell'app store.
Gestione delle versioni di dipendenza
Specificare le versioni esatte nel vostro package.json[] aiuta a prevenire problemi inaspettati causati dagli aggiornamenti. È possibile utilizzare la versione semantica (semver) per controllare gli aggiornamenti:
- – accetta qualsiasi versione minore o patch sopra 1.0.0 (ad esempio, 1.1.0, 1.2.5) ma non 2.0.0.
- – accetta solo versioni patch sopra 1.0.0 (ad esempio, 1.0.1, 1.0.9) ma non 1.1.0.
- – pinned alla versione 1.0.0 (senza aggiornamenti).
Per le app di produzione, per evitare di rompere accidentalmente i cambiamenti durante l'implementazione, è necessario utilizzare un file di blocco ([[] o ) per garantire che ogni installazione produce alberi identici .
Risolvere i conflitti di versione
Quando due librerie richiedono diverse versioni dello stesso pacchetto, si possono incontrare avvisi di dipendenza pari o errori di runtime.
- npm ls package-name[[] – visualizza l'albero di dipendenza e mette in evidenza i duplicati.
- spiega perché il nome del pacchetto[[] – spiega perché è installato un pacchetto.
- npm dedupe[[] / yarn-deduplicate[] – adula i pacchetti duplicati dove possibile.
Per React Native, prestare attenzione alle versioni contrastanti di [, , o moduli nativi come []]. Le versioni inconsistenti possono causare errori criptici come “Il modulo di base non può essere trovato.”
Aggiornamento delle dipendenze
L'aggiornamento periodico delle dipendenze è fondamentale per la sicurezza, le prestazioni e l'accesso a nuove funzionalità.
- Aggiornamenti di dettaglio:[] []] o – sicuro per cambiamenti non distruttivi.
- Aggiornamenti principali:[]] urtare manualmente la versione in [[] ed eseguire [.
- Utilizzo interattivo:[]] (installato separatamente) per vedere quali pacchetti hanno le versioni più recenti, quindi selettivamente aggiornate.
Quando si aggiorna il core React Native stesso ([[ pacchetto), seguire sempre il ufficiale []React Native upgrade guide[[] e utilizzare per unire i cambiamenti nei file di modello del vostro progetto.
Aggiornamenti automatizzati con CI/CD
In un continuo processo di integrazione, impostare un lavoro che funziona [] o periodicamente, crea una richiesta di pull per aggiornamenti minori, e innesca suite di test complete, che impedisce la putrefazione della dipendenza mantenendo un ambiente stabile.
Rimozione delle dipendenze non utilizzate
Quando una libreria non viene più utilizzata, rimuoverla per ridurre le dimensioni del fascio e semplificare la manutenzione:
npm uninstall library-name
yarn remove library-name
I pacchetti non utilizzati possono indugiare ] anche dopo la rimozione se fossero dipendenze transitive. Correre [ o ] per eliminare i pacchetti extraneous.
- depcheck[]] – uno strumento che identifica le dipendenze inutilizzate nella vostra base di codice.
- npx reagisce-nativo unlink library-name[ (legacy) – rimuove qualsiasi artefatto di collegamento nativo.
Migliori Pratiche per la gestione della dipendenza
- Revisione regolare e aggiornamento delle dipendenze.[] Pianifica un “audit di dipendenza” mensile – verifica per i consulenti di sicurezza ([[[]), aggiorna alle ultime versioni stabili e pulisci i pacchetti obsoleti.
- Acquistare le dipendenze al minimo richiesto.[ Evitare le librerie di “lavandino di cucina”; scegliere alternative mirate e ben mantenute (ad esempio, per le icone invece di importare un intero kit UI).
- Utilizzare la versione semantica per controllare gli aggiornamenti.[] Perdere le versioni principali e fare affidamento su file di blocco per la riproducibilità.
- Test accuratamente dopo l'aggiornamento delle dipendenze.[ Eseguire test unità, test di integrazione e test manuale dell'interfaccia utente su entrambe le piattaforme.
- ] Mantenere un file pulito [ e di blocco.] Evitare modifiche manuali che possono introdurre incongruenze. Impedire [] o al controllo della versione per garantire installazioni identiche in ambienti.
- Preferire il filato sopra npm se avete bisogno di installazioni deterministiche e spazi di lavoro.[ Yarn Berry (v2+) offre Plug'n'Play, che può accelerare le installazioni, ma può richiedere controlli di compatibilità con React Native.
- Utilizza []] per diagnosticare problemi di dipendenza e ambiente comuni prima di debug.
Gestione delle dipendenze native con CocoaPods e Gradle
Per iOS, sempre impegna per bloccare le versioni dei baccelli nativi. Eseguire [ quando si aggiorna una libreria React Native per ottenere l'ultima versione pod compatibile. Per Android, assicurarsi che il vostro non abbia conflitti []] o ]] valori tra le librerie.
Utilizzo di monorepos con React Native
Se il tuo progetto utilizza un monorepo (ad esempio, Nx, Turborepo, Lerna), gestisci le dipendenze a livello di radice con gli spazi di lavoro. Fai attenzione a sollevare – alcune librerie React Native potrebbero richiedere ] opzioni per evitare conflitti di dipendenza transitiva.
Pitfalls comune e come evitare di loro
- “Non trovare il modulo” errori dopo npm install:[] Elimina [], [, e eseguire l'installazione fresca. Se si utilizza il filato, eliminare pure (ma essere cauti con i file di blocco).
- iOS build fallisce dopo aver aggiunto una libreria:[] Assicurarsi di aver eseguito [] e che il file podfile della libreria è correttamente richiamato.
- Android runtime crash a causa del modulo nativo mancante:[] Verificare che il pacchetto Android della libreria è auto-registrato o che hai aggiunto manualmente il suo in .
- Duplicato simboli o conflitti di metodo:[] Usa [] e risolvi i codici nativi in conflitto aggiornando o degradando una delle librerie.
Risorse esterne
- Documentazione ufficiale dei nativi – Dipendenze
- npm install Command Reference[]]
- Uso e Comandi di Yarn[
- audit-ci – Audit di sicurezza per CI[
La gestione efficace della dipendenza aiuta a mantenere il vostro progetto React Native sicuro, efficiente e manutenbile. In seguito a queste pratiche razionalizzerà lo sviluppo, ridurrà i potenziali problemi causati da librerie obsolete o incompatibili, e permetterà al vostro team di concentrarsi sulle caratteristiche di costruzione piuttosto che combattere l'inferno della dipendenza.