npm: pacchetti e comandi
Prima di iniziare: le parole della lezione
- Pacchetto, dipendenza e registry
- Un pacchetto è codice distribuito con metadati; una dipendenza è un pacchetto richiesto dal progetto. Il registry è il servizio da cui npm scarica i pacchetti.
- Installazione locale e globale
- Locale significa nella struttura del progetto; globale significa nella posizione configurata per gli strumenti della macchina, selezionata con
-g. - node_modules e dipendenze transitive
node_modulescontiene i pacchetti installati. Le dipendenze transitive sono quelle richieste dalle tue dipendenze.- CI
- Continuous Integration: controlli automatici eseguiti sul progetto, per esempio installazione e test a ogni modifica.
npm è il gestore dei pacchetti usato normalmente con Node.js. Permette di installare librerie esterne e di eseguire script definiti nel progetto.
npm init -y
npm install express@5
npm install --save-dev nodemon
npm uninstall nodemon
npm ls --depth=0
npm run dev
npm run dev funziona solo se esiste uno script dev nel package.json. Esempio aggiuntivo: per riprodurre installazioni coerenti in progetti dotati di lockfile usa npm ci anziché npm install in CI. Non copiare casualmente dipendenze da tutorial datati.
Chi fa cosa, e perché
Il corso mostra librerie come Lodash e Bootstrap per rendere concreto il concetto di pacchetto: il primo offre funzioni di utilità, il secondo componenti e stili per il frontend. Installare un pacchetto non significa che sia tutto eseguibile nel browser o tutto utile a Node: dipende dal pacchetto.
npm init -y crea il manifesto con valori iniziali. npm install express installa la dipendenza locale e aggiorna manifesto e lockfile. npm uninstall rimuove il pacchetto dalle dipendenze dichiarate e aggiorna l’installazione: evita di cancellare a mano cartelle casuali in node_modules.
Un altro esempio guidato
# Dentro una cartella di esercizio
npm init -y
npm install express@5
npm ls --depth=0
npm explain express
Come leggerlo e risultato atteso. npm ls --depth=0 mostra le dipendenze dirette, senza espandere tutto l’albero. npm explain express spiega perché il pacchetto è installato. @5 richiede la major 5; il lockfile registra la versione precisa risolta.
Prova tu. Spiega la differenza tra il comando npm che installa Express e il codice require("express") che lo carica durante l’esecuzione.