Code, Learn

NPM: Cinque comandi utili per la gestione delle dipendenze

16 Aprile 2020 - 3 minuti di lettura

Nel corso del tempo i progetti si evolvono e aumentano di dimensioni e complessità, pertanto può risultare difficile tenere sotto controllo tutte le dipendenze.
Alberto Maggioni ci descrive cinque alcuni comandi utili per gestire e monitorare lo stato di un progetto NPM.

Gestione delle versioni con npm config

Quando installiamo una nuova dipendenza, questa viene salvata all’interno del nostro package.json con il prefisso ^. Come da specifica semver (semantic version), questo significa che in futuro potranno essere installati tutti gli aggiornamenti di tipo patch o minor.
In alcuni casi può essere preferibile un approccio più conservativo, ossia permettere solo l’installazione di nuove patch. Possiamo quindi sovrascrivere la configurazione predefinita tramite il seguente comando:

npm config set save-prefix="~"

In alternativa, è possibile anche forzare l’installazione di una versione fissa semplicemente eseguendo il comando:

npm config set save-exact=true

Ovviamente questo non ha effetto sulle dipendenze già installate, ma solo su quelle nuove.

Verificare le vulnerabilità nelle dipendenze con npm audit

Con il passare del tempo possono emergere delle vulnerabilità nelle dipendenze utilizzate.
Per evitare ripercussioni sul nostro progetto, è buona pratica eseguire periodicamente un controllo tramite il seguente comando:

npm audit

Il risultato è un elenco dei principali problemi rilevati, ciascuno con uno specifico livello di gravità. Viene inoltre riportata anche la versione in cui la specifica vulnerabilità è stata risolta, come mostrato nell’immagine seguente.

Verificare le versioni delle dipendenze con npm outdated

La corretta manutenzione di un progetto passa anche dal continuo aggiornamento delle sue dipendenze, per metterci al riparo da bug e potenziali vulnerabilità.
In questo caso ci viene in aiuto il comando npm outdated.

Come possiamo notare nell’immagine, vengono riportate tutte le librerie la cui versione non coincide con l’ultima rilasciata, nonché le seguenti informazioni:

  • current: la versione attualmente installata;
  • wanted: la versione massima che rispetti il range semver definito nel json;
  • latest: l’ultima versione disponibile.

Verificare le dipendenze non utilizzate con npx depcheck

Durante lo sviluppo vengono spesso installate molte dipendenze, alcune delle quali vengono poi abbandonate in favore di altre. Può capitare così che una o più librerie non vengano disinstallate e rimangano pertanto censite all’interno del package.json.
Per ovviare a questo problema possiamo sfruttare il seguente comando, che permette di ottenere la lista delle dipendenze installate ma non utilizzate:

npx depcheck

Verificare le licenze dei moduli con npx license-checker

Infine, un altro aspetto spesso trascurato dagli sviluppatori riguarda le licenze. Senza addentrarci in dettagli legali, è importante eseguire periodicamente una verifica di tutti i moduli installati e delle relative licenze.
Il seguente comando ci permette di generare facilmente un sommario:

npx license-checker --summary

Articolo scritto da