Due strumenti, due modelli di cache
npm tiene una cache content-addressable in %LOCALAPPDATA%\npm-cache: ogni tarball mai scaricato, più i log e la cache _npx per le esecuzioni usa-e-getta. Niente di tutto ciò serve a far girare i progetti installati — esiste solo per rendere più rapidi e offline-friendly gli install futuri. pnpm ragiona diversamente: un unico store (nelle versioni recenti in %LOCALAPPDATA%\pnpm\store) custodisce i file veri, e ogni cartella node_modules di ogni progetto è costruita con hard link che puntano lì. Per questo i progetti pnpm non moltiplicano l'occupazione di disco come quelli npm — e per questo lo store cresce senza limite: ogni nuova versione di un pacchetto ci si deposita per sempre, finché non poti.
Il risultato è la sorpresa classica: elimini un vecchio progetto e lo spazio non torna, perché gli hard link nello store tengono i dati in vita. La cosa da controllare è lo store, non le cartelle dei progetti.
I comandi di pulizia che valgono la pena
Qui tutto è sicuro per costruzione — le cache sono cache, e i tool le ricostruiscono a richiesta:
- npm cache clean --force — spazza via l'intera cache npm; le prossime installazioni riscaricano quel che serve
- npm cache verify — l'opzione morbida: fa garbage collection e verifica l'integrità invece di radere al suolo
- pnpm store prune — rimuove dallo store i pacchetti a cui nessun progetto linka più
- Elimina %LOCALAPPDATA%\npm-cache\_npx — cache usa-e-getta delle esecuzioni npx, sempre sicuro da buttare
- npm config set cache D:\dev\npm-cache — sposta la cache via dall'unità di sistema a un disco dati, in via permanente
- Prima misura: una scansione delle dimensioni di AppData batte l'eliminazione alla cieca — npm-cache e lo store pnpm sono i due soliti sospetti
La trappola degli hard link su NTFS
Ecco la parte che confonde tutti: su NTFS i dati di un file vengono liberati solo quando sparisce l'ultimo hard link che vi punta. Elimini lo store pnpm subito dopo aver ripulito node_modules, e liberi quello che ti aspetti. Elimini lo store mentre dei progetti linkano ancora ai suoi file, e non liberi nulla — i byte restano sul disco finché esiste node_modules, ed Esplora risorse continua a mostrare voci dello store che sono gusci praticamente vuoti. Quindi l'ordine conta: prima via i progetti (o i loro node_modules), poi pnpm store prune. Ne beneficiano soprattutto i runner CI e le macchine che macinano tanti repository, facendolo ogni mese; su un laptop monoprogetto lo store raramente merita attenzione.
Domande e risposte
È sicuro eliminare la cartella npm-cache in AppData?
Sì. Contiene solo tarball scaricati e log; npm riscarica ciò che serve alla prossima installazione. Usa npm cache clean --force o elimina direttamente la cartella.
Dove si trova lo store di pnpm su Windows?
Nelle versioni recenti, in %LOCALAPPDATA%\pnpm\store — verifica con pnpm store path. Puliscilo con pnpm store prune, non cancellando le cartelle a mano.
Scopri cosa include la licenza prima dell'acquisto.
La prova singola di 30 minuti include gli strumenti essenziali. Le funzioni PRO restano bloccate finché non attivi una licenza a pagamento.
Da leggere dopo
Scrivici: [email protected]