AskCleanAskClean

Come eliminare node_modules sul Mac senza perdere il progetto

Team AskClean · Aggiornato 2026-08-05

Puoi eliminare node_modules se package.json, il lockfile corretto e tutte le dipendenze necessarie sono ancora 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.

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 soltanto la cartella delle dipendenze rigenerabile; proteggi manifest, lockfile, configurazione e 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 sono necessari per ricostruire le dipendenze e non vanno rimossi. La cache condivisa dei download di npm, di norma in ~/.npm, è una categoria distinta.

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, rinomina quel file, che ha lo stesso formato, in package-lock.json prima di usare npm v12. Non sovrascrivere mai un package-lock.json esistente; se sono presenti entrambi, confrontali e risolvi le differenze come modifica separata. Ogni modifica presente solo in 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 padre. rm -rf ./node_modules salta il Cestino ed è irreversibile: prima ricontrolla la radice con pwd. Reinstalla da quella radice con npm ci quando package-lock.json è il lockfile di riferimento, oppure con il flusso a lockfile immutabile previsto dal repository per pnpm, Yarn o Bun. Tratta un monorepo come un unico sistema governato dal lockfile alla radice.

Reinstalla e verifica l’intero progetto

Il completamento dell’installazione non dimostra da solo 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.

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. 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 sono necessari per ricostruire le dipendenze e non vanno rimossi. La cache condivisa dei download di npm, di norma in ~/.npm, è una categoria distinta.
Verifica che le dipendenze siano davvero ricostruibilipackage.json + lockfile + configurazione del workspaceUn 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, rinomina quel file, che ha lo stesso formato, in package-lock.json prima di usare npm v12. Non sovrascrivere mai un package-lock.json esistente; se sono presenti entrambi, confrontali e risolvi le differenze come modifica separata. Ogni modifica presente solo in node_modules andrà persa.
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 padre. rm -rf ./node_modules salta il Cestino ed è irreversibile: prima ricontrolla la radice con pwd. Reinstalla da quella radice con npm ci quando package-lock.json è il lockfile di riferimento, oppure con il flusso a lockfile immutabile previsto dal repository per pnpm, Yarn o Bun. Tratta un monorepo come un unico sistema governato dal lockfile alla radice.
Reinstalla e verifica l’intero progettobuild + test + avvio dell’appIl completamento dell’installazione non dimostra da solo 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.

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 tutte le fonti delle dipendenze. Il progetto tornerà a funzionare solo dopo reinstallazione e verifiche.

Devo eliminare package-lock.json insieme a node_modules?

No. package-lock.json consente a npm di riprodurre la risoluzione delle dipendenze. 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 categoria non rimuove l’altra.

Fonti

Continua a liberare spazio per lo sviluppo