Una delle migliori funzionalità di Node sono i gestori di pacchetti. Esistono molti modi diversi per installare e gestire i pacchetti dei nodi. Qui esamineremo i pro ei contro dell'utilizzo di un gestore di pacchetti o dell'utilizzo di più di un gestore di pacchetti e alcuni dei modi migliori per utilizzarli insieme.
Cos'è un gestore di pacchetti che chiedi? Continuate a leggere per scoprirlo.
Cosa sono i gestori di pacchetti?
Nel mondo dello sviluppo software, le dipendenze sono ciò di cui hai bisogno per eseguire il tuo progetto. Sono come gli ingredienti di una ricetta: senza di loro non succede niente.
Ad esempio, se stai scrivendo un'app che utilizza JavaScript e desidera accedere ad alcune funzioni da una libreria chiamata jQuery (che molti siti Web usavano una volta), quindi jQuery sarà una delle tue dipendenze. Avrai bisogno che sia installato in modo che quando qualcuno visita il tuo sito, possa vedere quelle fantastiche animazioni o interazioni che hai creato con esso!
I gestori di pacchetti aiutano a gestire queste relazioni tra i progetti gestendo le dipendenze per noi, quindi non dobbiamo preoccuparci di scaricarli manualmente noi stessi ogni ogni volta che vogliamo aggiungere o aggiornare qualcosa di nuovo, si assicurano anche che tutto funzioni correttamente insieme e funzioni senza problemi una volta installato (il che a volte è più facile a dirsi che Fatto).
Node viene fornito preconfezionato con un gestore di pacchetti chiamato NPM
NPM è il gestore di pacchetti predefinito e, come tale, è integrato nel runtime del nodo. Puoi usare NPM per installare pacchetti da GitHub o NPM direttamente. Puoi anche pubblicare i tuoi pacchetti su questo sito in modo che altri possano installarli usando la loro versione di NPM.
NPM non viene utilizzato solo per l'installazione di pacchetti; gestisce anche la risoluzione delle dipendenze e i conflitti di versione tra due o più librerie o moduli richiesti nella base di codice dell'applicazione.
Ciò significa che se ci sono più versioni di qualcosa come Express in esecuzione sul tuo server in qualsiasi momento, NPM farà in modo che ogni istanza ottenga ciò di cui ha bisogno senza entrare in conflitto con altre istanze che svolgono un lavoro simile e tutto senza che tu debba fare qualcosa di speciale oltre al semplice chiamando richiedere() su un oggetto quando serve!
NPM è uno strumento incredibilmente potente ed è facile iniziare con esso. Ma se non conosci Node e JavaScript, può essere difficile sapere quali strumenti sono disponibili per il tuo utilizzo e quali sono i migliori per un determinato progetto.
Il problema principale con NPM è che è lento nell'installare i pacchetti. Questo non è un grosso problema se stai solo eseguendo uno o due script occasionali, ma può essere incredibilmente frustrante se stai cercando di creare un'intera applicazione che utilizza dozzine di librerie diverse e utensili.
Filato e PNPM sono più veloci di NPM
Yarn è un'alternativa sicura e affidabile a NPM che utilizza un file di blocco per evitare sovrascritture accidentali e garantisce che le dipendenze vengano risolte correttamente durante l'installazione dei pacchetti.
Ha anche un tempo di installazione più rapido rispetto a NPM, il che lo rende particolarmente utile se lavori con progetti di grandi dimensioni che hanno molti moduli con molte dipendenze.
PNPM è un'alternativa sia a Yarn che a NPM, ma non è ancora così popolare perché non ha alcune delle funzionalità che si trovano in nessuno dei due (come i file di blocco). Tuttavia, i suoi sviluppatori affermano che PNPM può installare pacchetti fino a quattro volte più velocemente di Yarn o NPM grazie alla sua natura leggera; questo significa anche un minore utilizzo dello spazio su disco sul tuo computer!
Se stai costruendo un progetto che richiede solo una manciata di dipendenze, Yarn o NPM saranno probabilmente sufficienti. Tuttavia, se lavori con progetti di grandi dimensioni con molti moduli e dipendenze, PNPM potrebbe essere l'opzione migliore per te.
Vantaggi dell'utilizzo di più gestori di pacchetti
Un singolo gestore di pacchetti può gestire solo una versione di una data libreria alla volta. Se desideri utilizzare due versioni diverse della stessa libreria per altri progetti o in ambienti diversi (ad esempio, produzione vs. development), avrete bisogno di due pacchetti separati installati sul vostro sistema.
Questo può portare a conflitti se entrambi i pacchetti tentano di aggiornare contemporaneamente la loro versione della stessa dipendenza. L'utilizzo di più gestori di pacchetti significa che hai un maggiore controllo su quali dipendenze sono installate e dove, il che aiuta a evitare questo tipo di conflitti.
Un altro vantaggio è che quando si utilizzano più gestori di pacchetti, ognuno fornirà il proprio set unico di funzionalità. Alcuni possono essere più veloci di altri; alcuni potrebbero avere migliori capacità di gestione delle dipendenze; altri potrebbero essere più adatti per lo sviluppo di applicazioni all'interno di determinati framework come ReactJS o VueJS ecc...
Infine, l'utilizzo di più gestori di pacchetti può aiutare a migliorare la produttività degli sviluppatori riducendo il tempo impiegato per la ricerca e l'installazione delle dipendenze. Questo perché ogni gestore di pacchetti sarà progettato tenendo conto di un insieme specifico di casi d'uso (ad esempio, velocità vs. sicurezza vs. gestione delle dipendenze, ecc...).
Utilizza più gestori di pacchetti installandoli a livello globale
Utilizzando la riga di comando, puoi specificare quale gestore di pacchetti desideri utilizzare per un progetto specifico. Configura più gestori di pacchetti sulla tua macchina:
- NPM viene fornito preconfezionato con Node. Ciò ti consentirà di installare altri pacchetti (e gestori di pacchetti) dalla riga di comando e gestire le dipendenze in tutti i tuoi progetti con NPM. È anche utile se si desidera eseguire script NPM in un browser (ad es. Webpack), poiché i browser non vengono forniti con NPM preinstallato!
- Installa anche Yarn a livello globale utilizzando NPM. Questa è un'altra opzione popolare per la gestione delle dipendenze all'interno dei progetti JavaScript; presenta alcuni vantaggi rispetto a NPM che potrebbero renderlo preferibile per determinati tipi di progetti o team
- Infine, installa PNPM. Questo gestore di pacchetti è un fork di NPM progettato per essere più veloce e più stabile. Ha anche alcune funzionalità aggiuntive che possono essere utili per alcuni tipi di progetti, come il supporto per le dipendenze da GitHub.
Si noti che un'installazione globale significa che il pacchetto selezionato sarà disponibile per l'intero sistema (è possibile accedere a il programma ovunque tramite la riga di comando), mentre un'installazione locale è accessibile solo dal funzionamento corrente directory.
Esempi reali di come utilizzare più gestori di pacchetti
Dai un'occhiata a questi usi:
1. Filato e NPM possono essere usati insieme (ad es. creare-reagire-app)
Ciò è utile quando si desidera sfruttare la velocità e l'efficienza di Yarn pur mantenendo la compatibilità con i pacchetti NPM. Se hai bisogno dell'ultima versione di una libreria che non è stata ancora aggiornata per la compatibilità con Yarn o se c'è un altro motivo perché il tuo team preferirebbe attenersi a NPM nonostante la sua velocità inferiore o il set di funzionalità limitato, allora questo potrebbe funzionare bene per il tuo progetto. Aiuta anche a evitare di avere due alberi di dipendenza separati nella configurazione del repository mono!
2. Utilizzo di Yarn per i pacchetti globali e PNPM per le installazioni locali
Sebbene PNPM sia il gestore di pacchetti più veloce, può essere complicato da utilizzare per i pacchetti installati a livello globale. Questo perché utilizza una struttura di file diversa che può causare problemi di compatibilità con programmi come Visual Studio Code. È qui che entra in gioco Yarn. Puoi usarlo per i tuoi pacchetti installati a livello globale e PNPM per le installazioni locali. Questa soluzione è un buon modo per ottenere i vantaggi di entrambi i gestori di pacchetti senza dover modificare troppo il flusso di lavoro. Con questa configurazione, se vuoi scatenarti, puoi rimuovere completamente NPM dal tuo sistema (ma è sempre bello avere NPM come backup).
3. Utilizzo di PNPM con NPM come fallback
Questa è una buona opzione da considerare nel caso in cui desideri utilizzare PNPM, ma non vuoi che tutti i tuoi sviluppatori debbano ancora imparare un nuovo strumento. Consente loro di continuare a lavorare con NPM finché non si sentono a proprio agio con PNPM e ne hanno bisogno per il proprio lavoro.
L'utilizzo di più gestori di pacchetti semplifica le cose
Puoi utilizzare più gestori di pacchetti. Puoi installarli globalmente o localmente e se vuoi specificare quale gestore di pacchetti deve essere utilizzato per un progetto specifico, usa semplicemente la riga di comando!
Se desideri installare più gestori di pacchetti sul tuo sistema, assicurati di utilizzare la stessa versione di Node.js.
In conclusione, pensiamo che dovresti usare più di un gestore di pacchetti. È un ottimo modo per iniziare con Node e anche imparare alcuni nuovi strumenti se hai già familiarità con NPM. Se non hai già installato Node, l'installazione è semplice su Windows.