NPM il Gestore di Pacchetti
Introduzione a npm
npm
è il gestore di pacchetti standard per Node.js.
Nel settembre 2022 sono stati segnalati oltre 2,1 milioni di pacchetti elencati nel registro npm, rendendolo il repository di codice singolo più grande al mondo per un linguaggio e puoi essere certo che esiste un pacchetto per (quasi!) tutto.
Inizialmente è nato come un modo per scaricare e gestire le dipendenze dei pacchetti Node.js, ma è diventato uno strumento utilizzato anche nello sviluppo di JavaScript lato frontend.
Yarn e pnpm sono alternative alla CLI di npm. Puoi dare un’occhiata anche a loro.
Pacchetti
npm
gestisce il download delle dipendenze del tuo progetto.
Installazione di tutte le dipendenze
Se un progetto ha un file package.json
, eseguendo
installerà tutto ciò di cui ha bisogno il progetto, nella cartella node_modules
, creandola se non esiste già .
Installazione di un singolo pacchetto
Puoi anche installare un pacchetto specifico eseguendo
Inoltre, da npm 5, questo comando aggiunge <nome-pacchetto>
al file package.json
nelle dipendenze. Prima della versione 5, era necessario aggiungere il flag --save
.
Spesso vedrai aggiunti a questo comando ulteriori flag:
--save-dev
installa e aggiunge l’entry al filepackage.json
nelle devDependencies--no-save
installa ma non aggiunge l’entry al filepackage.json
nelle dependencies--save-optional
installa e aggiunge l’entry al filepackage.json
nelle optionalDependencies--no-optional
impedisce l’installazione delle dipendenze opzionali
Possono essere utilizzati anche gli shorthands dei flag:
-S
:--save
-D
:--save-dev
-O
:--save-optional
La differenza tra devDependencies e dependencies è che la prima contiene strumenti di sviluppo, come una libreria di testing, mentre la seconda è inclusa nell’applicazione in produzione.
Per quanto riguarda le optionalDependencies, la differenza è che il fallimento nella compilazione della dipendenza non causerà il fallimento dell’installazione. Ma è responsabilità del tuo programma gestire la mancanza della dipendenza. Leggi di più sulle dipendenze opzionali.
Aggiornamento dei pacchetti
L’aggiornamento è reso facile anche da
npm
controllerà tutti i pacchetti per una versione più recente che soddisfa i tuoi vincoli di versione.
Puoi specificare anche un singolo pacchetto da aggiornare:
Versioning
Oltre ai download standard, npm
gestisce anche il versioning, quindi puoi specificare una versione specifica di un pacchetto o richiedere una versione più alta o più bassa di quella di cui hai bisogno.
Molte volte scoprirai che una libreria è compatibile solo con una release principale di un’altra libreria. O un bug nell’ultima release di una libreria, ancora non risolto, sta causando un problema.
Specificare una versione esplicita di una libreria aiuta anche a mantenere tutti sulla stessa versione esatta di un pacchetto, in modo che l’intero team esegua la stessa versione fino a quando il file package.json
non viene aggiornato.
In tutti questi casi, il versioning aiuta molto, e npm
segue lo standard di versioning semantico (semver).
Puoi installare una versione specifica di un pacchetto, eseguendo
Esecuzione di Task
Il file package.json supporta un formato per specificare le attività da eseguire tramite la riga di comando usando
Ad esempio:
È molto comune utilizzare questa funzionalità per eseguire Webpack:
Quindi, anziché digitare questi comandi lunghi, che sono facili da dimenticare o digitare erroneamente, puoi eseguire