Guías de Levo · Desarrolladores: todo lo demás

Cómo encontrar y borrar las carpetas node_modules de todo tu Mac

Cualquier carpeta node_modules se puede borrar. npm install, pnpm install o yarn la reconstruyen a partir del archivo de bloqueo. La única pregunta es cuáles compensan el tiempo de reinstalar, y la respuesta suele ser los proyectos que no has abierto en un mes.

La lista Ready to free de Levo con carpetas node_modules y cachés de paquetes, cada una con su tamaño y un motivo
QuéDónde¿Se puede borrar?
Dependencias del proyecto<project>/node_modulesSí, install la reconstruye
Copias anidadasnode_modules/*/node_modulesDéjalas, se van con la carpeta padre
Paquetes enlazadosEnlaces simbólicos creados por npm linkBorra el enlace, no el origen al que apunta
Paquetes globales/opt/homebrew/lib/node_modules o el lib de tu versión de NodeNo, son herramientas que instalaste a propósito

Por qué hay tantas

Cada proyecto de JavaScript guarda su propia copia de cada dependencia, y la mayoría guarda también las dependencias de sus dependencias. Una app pequeña de React ocupa fácilmente 300 MB. Un monorepo puede pasar de 2 GB. Unos años de proyectos personales, tutoriales y repositorios clonados suman decenas de gigabytes en los que nunca piensas, porque las carpetas están dentro de proyectos que solo abres de vez en cuando.

Cómo hacerlo tú mismo

Encuéntralas todas

Abre Terminal y lista todas las carpetas node_modules de tu carpeta de inicio, de menor a mayor. El -prune evita que find entre en cada una, y eso es lo que lo mantiene rápido.

find ~ -name node_modules -type d -prune -not -path "*/Library/*" -exec du -sh {} + 2>/dev/null | sort -h | tail -30

La lista muestra el tamaño y la ruta. Todo lo que está bajo ~/Library se omite a propósito: apps como los editores y las herramientas de Electron guardan ahí sus propias copias, y no te corresponde quitarlas. Lo mismo vale para las carpetas dentro de un paquete de app.

Borra la carpeta de un proyecto

cd ~/Developer/old-project
rm -rf node_modules

Es permanente: rm no usa la Papelera. Comprueba la ruta antes de pulsar intro. Si prefieres poder deshacerlo, arrastra la carpeta a la Papelera en Finder, aunque Finder puede tardar mucho en mover una carpeta con 50.000 archivos pequeños.

Borra muchas a la vez con npkill

npkill escanea una carpeta, lista cada node_modules con su tamaño y su fecha de última modificación, y te deja borrar con las flechas y la barra espaciadora. No hace falta instalarlo.

cd ~/Developer
npx npkill

Ordena por tamaño o por última modificación y ve bajando por la lista. La columna de última modificación es la útil: una carpeta intacta desde hace un año es una apuesta segura.

Qué proyectos saltarte

Con pnpm, node_modules son sobre todo enlaces a un único almacén compartido, así que borrar las carpetas de los proyectos libera menos de lo que sugiere du. Los archivos solo se liberan cuando nada los enlaza, y aun así solo después de pnpm store prune. Consulta cómo borrar las cachés de npm, pnpm, Yarn y Bun.

También merece una mirada

Junto a node_modules, los proyectos dejan resultados de compilación: .next, .nuxt, dist, .turbo, .parcel-cache. La siguiente compilación los reconstruye, pero comprueba que dist no esté en git antes de quitarla, porque algunos proyectos la publican a propósito. Los proyectos de Python también dejan sus propias carpetas pesadas, tratadas en cómo encontrar y borrar entornos virtuales de Python antiguos.

Cómo lo hace Levo

Levo mantiene un índice en vivo de lo que llena tu disco, así que ya sabe dónde está cada node_modules y cuánto ocupa. Aparecen en Ready to free bajo dependencias de proyectos, cada una con su tamaño y un motivo, junto a tus cachés de paquetes.

Tu propio agente de IA hace de juez. Lee cada proyecto y decide si está inactivo, y Levo marca una carpeta solo cuando no hay nada en marcha dentro: ni servidor de desarrollo, ni archivo abierto, ni sesión de un agente de programación. Un proyecto que tocaste esta mañana queda sin marcar. El agente solo puede leer. Levo hace el borrado y vuelve a comprobar cada carpeta justo antes de quitarla.

Eliges un nivel de limpieza, pulsas Select › Smartly, desmarcas lo que quieras conservar y pulsas Clean up. Con Move to Trash activado, puedes recuperar una carpeta. La configuración se describe en Levo para desarrolladores web. Vigilar y recibir sugerencias es gratis, y también dos limpiezas; después hay una licencia de por vida.

Preguntas frecuentes

¿Cuánto espacio ocupa node_modules?

Depende del proyecto. Una app pequeña suele ocupar de 200 a 400 MB y un monorepo grande puede pasar de 2 GB. En unos años de proyectos, la mayoría de los desarrolladores encuentra entre 10 y 50 GB repartidos en decenas de carpetas.

¿Borrar node_modules estropeará mi proyecto?

No. La carpeta se reconstruye a partir de tu archivo de bloqueo la próxima vez que ejecutes npm install, pnpm install o yarn. Los archivos fuente del proyecto no se tocan. Las excepciones son los archivos editados a mano dentro de la carpeta y los paquetes que se han retirado de npm.

¿Es seguro borrar node_modules con un servidor de desarrollo en marcha?

No lo hagas. El servidor puede caerse o servir páginas rotas, y un observador de archivos puede fallar a mitad del borrado. Detén antes el servidor.

¿Por qué rm -rf node_modules es tan lento?

Una sola carpeta puede contener de 50.000 a 200.000 archivos pequeños, y cada uno hay que quitarlo por separado. Es más lento en un disco casi lleno. Borrar desde Terminal es mucho más rápido que mover la carpeta a la Papelera en Finder.

¿Tengo que borrar también el archivo de bloqueo?

No. Conserva package-lock.json, pnpm-lock.yaml o yarn.lock. Es el registro que permite que la reinstalación te dé las mismas versiones.