AskClean

Come eliminare node_modules sul Mac senza perdere il progetto

Team AskClean · Aggiornato 2026-11-02

Puoi eliminare la cartella node_modules di un progetto se package.json e il lockfile corretto sono intatti e tutte le dipendenze restano disponibili. Misura prima ogni progetto, arresta i processi attivi e sposta nel Cestino solo la cartella verificata. Reinstalla con lo stesso package manager e non svuotare il Cestino finché build, test e avvio non funzionano di nuovo. Non confondere node_modules con la cache condivisa dei download di npm: sono categorie diverse.

Un braccio robotico sposta un blocco da una rete di dipendenze verso un contenitore per il riciclo; un disegno tecnico del progetto, un lucchetto e un blocco protetto restano separati
Rimuovi la cartella delle dipendenze, che si può ricostruire, non il manifest del progetto, il lockfile, la configurazione o il codice sorgente.

Distingui node_modules dal progetto e dalla cache

node_modules contiene l’albero delle dipendenze installate di un progetto e si può ricostruire soltanto se ne conservi tutti gli input. Dopo l’eliminazione il progetto non si avvia né si compila fino alla reinstallazione. package.json, lockfile, codice sorgente, configurazione, patch, file del workspace e cronologia Git servono a ricostruire le dipendenze e non vanno rimossi. La cache condivisa dei download di npm, di norma in ~/.npm, è una categoria distinta: svuotarla non elimina node_modules, ed eliminare node_modules non svuota la cache.

Verifica che le dipendenze siano davvero ricostruibili

Un lockfile rende la reinstallazione prevedibile, ma non è una copia dei pacchetti. Conferma package manager e versione, accesso a registry privati, VPN, dipendenze Git e file:, workspace locali, download esterni e toolchain native. npm v12 non legge più npm-shrinkwrap.json: se è l’unico lockfile di un progetto legacy, rinominalo in package-lock.json (il formato è identico) prima di usare npm v12. Non sovrascrivere mai un package-lock.json esistente; se sono presenti entrambi, confrontali e risolvi le differenze con una modifica separata. Ogni modifica fatta solo dentro node_modules andrà persa.

  1. Dalla radice del progetto esegui pwd e du -sh ./node_modules; annota anche lo spazio libero sul disco.
  2. Controlla package.json, il lockfile corretto, la configurazione del workspace e le modifiche locali con git status; se npm-shrinkwrap.json è l’unico lockfile di un progetto legacy, rinominalo in package-lock.json prima di usare npm v12, senza sovrascrivere alcun file esistente.
  3. Verifica l’accesso a registry privati, dipendenze Git e file:, pacchetti locali, download esterni e strumenti di compilazione; arresta ogni processo che usa node_modules.
  4. Sposta nel Cestino soltanto la cartella node_modules verificata e reinstalla dalla radice corretta con il package manager e il lockfile previsti dal repository.
  5. Esegui build, test, lint e avvio dell’app; misura di nuovo lo spazio e solo allora svuota il Cestino.

Non usare node_modules come unica copia di un pacchetto o di una correzione manuale. Se una dipendenza esatta non è più reperibile e non è archiviata altrove, eliminarla può rendere inutilizzabile un progetto datato.

Elimina una sola cartella di dipendenze verificata

Nel progetto confermato sposta nel Cestino del Finder soltanto node_modules, mai il repository che la contiene. Dal Terminale, rm -rf ./node_modules salta il Cestino ed è irreversibile: prima ricontrolla la radice con pwd. Reinstalla da quella radice con npm ci quando il lockfile di riferimento è package-lock.json oppure, per pnpm, Yarn o Bun, con l’installazione a lockfile bloccato prevista dal repository (--frozen-lockfile o --immutable). Tratta un monorepo come un unico sistema governato dal lockfile alla radice.

Reinstalla e verifica l’intero progetto

Un’installazione completata non dimostra da sola che il progetto sia stato ripristinato. Esegui build, test, lint e avvio documentati: moduli nativi e script del ciclo di vita possono ancora fallire dopo un cambio di toolchain. Il ripristino richiede download, estrazione dei pacchetti, creazione di collegamenti e talvolta compilazione. Se non riesce, recupera la cartella dal Cestino e diagnostica credenziali, rete, versioni e lockfile prima di pulire un altro progetto. AskClean, invece, elimina definitivamente le cartelle che confermi, senza passare dal Cestino: se vuoi un margine di recupero, sposta tu la cartella nel Cestino dal Finder.

Cosa eliminare e quanto costa ripristinarlo

Trova le cartelle node_modules più grandi, proteggi sorgenti e lockfile, elimina le dipendenze progetto per progetto e reinstallale con npm, pnpm, Yarn o Bun.

Elemento o azioneDove verificareConseguenza
Distingui node_modules dal progetto e dalla cacheprogetto/node_modulesnode_modules contiene l’albero delle dipendenze installate di un progetto e si può ricostruire soltanto se ne conservi tutti gli input.
Verifica che le dipendenze siano davvero ricostruibilipackage.json + lockfile + configurazione del workspaceUn lockfile rende la reinstallazione prevedibile, ma non è una copia dei pacchetti.
Elimina una sola cartella di dipendenze verificataCestino / reinstallazione con il package managerNel progetto confermato sposta nel Cestino del Finder soltanto node_modules, mai il repository che la contiene.
Reinstalla e verifica l’intero progettobuild + test + avvio dell’appUn’installazione completata non dimostra da sola che il progetto sia stato ripristinato.

FAQ

È sicuro eliminare node_modules sul Mac?

In genere sì, se conservi package.json, il lockfile corretto, i file del workspace, il codice sorgente e l’accesso a tutte le dipendenze. Il progetto tornerà a funzionare solo dopo la reinstallazione e le verifiche: svuota il Cestino solo a quel punto.

Devo eliminare package-lock.json insieme a node_modules?

No. package-lock.json permette a npm di riprodurre la risoluzione delle dipendenze ed è l’input di npm ci. npm v12 non legge più npm-shrinkwrap.json: se è l’unico lockfile di un progetto legacy, rinominalo in package-lock.json senza sovrascrivere un package-lock.json esistente.

node_modules e la cache di npm sono la stessa cosa?

No. node_modules è l’albero delle dipendenze installate di un progetto; la cache condivisa di npm si trova di norma in ~/.npm. Eliminare una delle due non rimuove l’altra.

Fonti

Continua a liberare lo spazio occupato dagli strumenti di sviluppo