Guies de Levo · Desenvolupadors: la resta
Com trobar i esborrar les carpetes node_modules de tot el Mac
Totes les carpetes node_modules es poden esborrar. npm install, pnpm install o yarn la reconstrueixen a partir del lockfile. L'única qüestió és quines valen el temps de reinstal·lació, i la resposta sol ser els projectes que fa un mes que no obres.

| Què | On | Es pot esborrar? |
|---|---|---|
| Dependències del projecte | <project>/node_modules | Sí, install la reconstrueix |
| Còpies niuades | node_modules/*/node_modules | Deixa-les, se'n van amb la carpeta pare |
| Paquets enllaçats | Enllaços simbòlics creats per npm link | Esborra l'enllaç, no l'origen al qual apunta |
| Paquets globals | /opt/homebrew/lib/node_modules o el lib de la teva versió de Node | No, són eines que has instal·lat expressament |
Per què n'hi ha tantes
Cada projecte de JavaScript té la seva pròpia còpia de cada dependència, i la majoria també tenen les dependències de les seves dependències. Una app petita de React fa fàcilment 300 MB. Un monorepo pot passar de 2 GB. Uns quants anys de projectes personals, tutorials i repositoris clonats sumen desenes de gigabytes en què mai penses, perquè les carpetes són dins de projectes que només obres de tant en tant.
Com fer-ho tu mateix
Troba-les totes
Obre el Terminal i llista totes les carpetes node_modules de la teva carpeta d'usuari, les més grans al final. El -prune evita que find entri dins de cadascuna, i això és el que el manté ràpid.
find ~ -name node_modules -type d -prune -not -path "*/Library/*" -exec du -sh {} + 2>/dev/null | sort -h | tail -30
La llista mostra la mida i la ruta. Tot el que hi ha sota ~/Library s'omet expressament: apps com els editors i les eines d'Electron hi guarden les seves pròpies còpies, i no les has d'eliminar tu. El mateix val per a les carpetes dins del paquet d'una app.
Esborra la carpeta d'un projecte
cd ~/Developer/old-project
rm -rf node_modules
Això és permanent: rm no fa servir la Paperera. Comprova la ruta abans de prémer retorn. Si prefereixes poder desfer-ho, arrossega la carpeta a la Paperera des del Finder, tot i que el Finder pot trigar molt a moure una carpeta amb 50.000 fitxers petits.
Esborra'n moltes alhora amb npkill
npkill escaneja una carpeta, llista cada node_modules amb la seva mida i la data de l'última modificació, i et deixa esborrar amb les fletxes i l'espai. No cal instal·lar-lo.
cd ~/Developer
npx npkill
Ordena per mida o per última modificació i ves baixant per la llista. La columna d'última modificació és la útil: una carpeta que fa un any que no es toca és una aposta segura.
Quins projectes saltar-te
- Tot el que estàs fent servir aquesta setmana. Una reinstal·lació triga uns minuts, però també necessita connexió i pot baixar versions més noves si el teu lockfile és fluix.
- Projectes sense lockfile. Sense
package-lock.json,pnpm-lock.yamloyarn.lock, una reinstal·lació pot no donar-te les mateixes versions que tenies. Comprova primer que el lockfile estigui al repositori. - Projectes amb pedaços locals. Si has editat a mà un fitxer dins de
node_modulesi no has fet servir maipatch-packagenipnpm patch, aquella edició se'n va amb la carpeta. - Projectes antics que depenen d'un paquet que des d'aleshores s'ha retirat de npm, o d'un registre privat al qual ja no pots accedir. Poc habitual, però és l'únic cas en què esborrar fa perdre alguna cosa per sempre.
- Tot el que necessites sense connexió. Si estàs a punt de viatjar i vols executar el projecte en un avió, deixa'l estar.
Amb pnpm, node_modules són sobretot enllaços a un únic magatzem compartit, així que esborrar carpetes de projectes allibera menys del que suggereix du. Els fitxers només s'alliberen quan res hi enllaça, i només després de pnpm store prune. Mira com netejar les memòries cau de npm, pnpm, Yarn i Bun.
També val la pena mirar
Al costat de node_modules, els projectes deixen resultats de compilació: .next, .nuxt, dist, .turbo, .parcel-cache. La propera compilació els reconstrueix, però comprova que dist no estigui al repositori de git abans d'eliminar-lo, perquè alguns projectes l'hi tenen expressament. Els projectes de Python també deixen les seves pròpies carpetes pesades, que es tracten a com trobar i esborrar els entorns virtuals antics de Python.
Com ho fa Levo
Levo manté un índex en directe del que omple el teu disc, així que ja sap on és cada node_modules i quant fa. Apareixen a Ready to free (llest per alliberar) sota les dependències de projecte, cadascuna amb una mida i un motiu, al costat de les teves memòries cau de paquets.
El teu propi agent d'IA fa de jutge. Llegeix cada projecte i decideix si està inactiu, i Levo només marca una carpeta quan no hi ha res en marxa a dins: cap servidor de desenvolupament, cap fitxer obert, cap sessió d'agent de programació. Un projecte que has tocat aquest matí queda sense marcar. L'agent només pot llegir. Levo fa l'esborrat ell mateix, i torna a comprovar cada carpeta just abans que se'n vagi.
Tries un nivell de neteja, fas servir Select › Smartly, desmarques el que vols conservar i prems Clean up. Amb Move to Trash activat, pots tornar a posar una carpeta al seu lloc. La configuració es descriu a Levo per a desenvolupadors web. Vigilar i els suggeriments són gratis, i dues neteges també; després hi ha una llicència de per vida.
Preguntes freqüents
Quant d'espai ocupa node_modules?
Depèn del projecte. Una app petita sol fer de 200 a 400 MB i un monorepo gran pot passar de 2 GB. Amb uns quants anys de projectes, la majoria de desenvolupadors en troben de 10 a 50 GB repartits en dotzenes de carpetes.
Esborrar node_modules trencarà el meu projecte?
No. La carpeta es reconstrueix a partir del teu lockfile la propera vegada que executis npm install, pnpm install o yarn. Els fitxers de codi font del projecte no es toquen. Les excepcions són els fitxers editats a mà dins de la carpeta i els paquets que s'han retirat de npm.
És segur esborrar node_modules amb un servidor de desenvolupament en marxa?
No ho facis. El servidor pot petar o servir pàgines trencades, i un vigilant de fitxers pot fallar a mitja esborrada. Atura primer el servidor.
Per què rm -rf node_modules és tan lent?
Una sola carpeta pot tenir de 50.000 a 200.000 fitxers petits, i cadascun s'ha d'eliminar per separat. Va més lent amb el disc gairebé ple. Esborrar des del Terminal és molt més ràpid que moure la carpeta a la Paperera des del Finder.
També he d'esborrar el lockfile?
No. Conserva package-lock.json, pnpm-lock.yaml o yarn.lock. És el registre que fa que la reinstal·lació et doni les mateixes versions.