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.

| Qué | Dónde | ¿Se puede borrar? |
|---|---|---|
| Dependencias del proyecto | <project>/node_modules | Sí, install la reconstruye |
| Copias anidadas | node_modules/*/node_modules | Déjalas, se van con la carpeta padre |
| Paquetes enlazados | Enlaces simbólicos creados por npm link | Borra el enlace, no el origen al que apunta |
| Paquetes globales | /opt/homebrew/lib/node_modules o el lib de tu versión de Node | No, 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
- Todo en lo que trabajes esta semana. Reinstalar tarda unos minutos, pero además necesita red y puede traer versiones más nuevas si tu archivo de bloqueo es laxo.
- Proyectos sin archivo de bloqueo. Sin
package-lock.json,pnpm-lock.yamloyarn.lock, una reinstalación puede no darte las mismas versiones que tenías. Comprueba antes que el archivo de bloqueo esté en el repositorio. - Proyectos con parches locales. Si editaste a mano un archivo dentro de
node_modulesy nunca usastepatch-packageopnpm patch, esa edición se va con la carpeta. - Proyectos antiguos que dependen de un paquete que ya se retiró de npm, o de un registro privado al que ya no puedes acceder. Es raro, pero es el único caso en que borrar pierde algo para siempre.
- Todo lo que necesites sin conexión. Si vas a viajar y quieres ejecutar el proyecto en un avión, déjalo en paz.
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.