Guias do Levo · Desenvolvedores: tudo mais
Como encontrar e apagar pastas node_modules em todo o Mac
Toda pasta node_modules pode ser apagada. npm install, pnpm install ou yarn a refaz a partir do lockfile. A única questão é quais valem o tempo de reinstalar, e a resposta costuma ser os projetos que você não abre há um mês.

| O quê | Onde | É seguro apagar? |
|---|---|---|
| Dependências do projeto | <project>/node_modules | Sim, o install a refaz |
| Cópias aninhadas | node_modules/*/node_modules | Deixe-as, elas vão junto com a pasta pai |
| Pacotes vinculados | Links simbólicos criados pelo npm link | Apague o link, não a origem para a qual ele aponta |
| Pacotes globais | /opt/homebrew/lib/node_modules ou o lib da sua versão do Node | Não, são ferramentas que você instalou de propósito |
Por que há tantas
Cada projeto JavaScript guarda a própria cópia de todas as dependências, e a maioria guarda também as dependências das dependências. Um app React pequeno facilmente tem 300 MB. Um monorepo pode passar de 2 GB. Alguns anos de projetos paralelos, tutoriais e repositórios clonados somam dezenas de gigabytes em que você nunca pensa, porque as pastas ficam dentro de projetos que você só abre de vez em quando.
Como fazer você mesmo
Encontre todas
Abra o Terminal e liste todas as pastas node_modules dentro da sua pasta pessoal, com as maiores por último. O -prune impede o find de entrar em cada uma, e é isso que o mantém rápido.
find ~ -name node_modules -type d -prune -not -path "*/Library/*" -exec du -sh {} + 2>/dev/null | sort -h | tail -30
A lista mostra o tamanho e o caminho. Tudo dentro de ~/Library é ignorado de propósito: apps como editores e ferramentas Electron guardam ali as próprias cópias, e elas não são suas para remover. O mesmo vale para pastas dentro do pacote de um app.
Apague a pasta de um projeto
cd ~/Developer/old-project
rm -rf node_modules
Isso é permanente: o rm não usa a Lixeira. Confira o caminho antes de apertar Return. Se você preferir poder desfazer, arraste a pasta para a Lixeira no Finder, embora o Finder possa demorar bastante para mover uma pasta com 50.000 arquivos pequenos.
Apague várias de uma vez com o npkill
O npkill varre uma pasta, lista cada node_modules com o tamanho e a data da última modificação, e deixa você apagar com as setas e a barra de espaço. Não precisa instalar.
cd ~/Developer
npx npkill
Ordene por tamanho ou por última modificação e vá descendo a lista. A coluna da última modificação é a mais útil: uma pasta intocada há um ano é aposta segura.
Quais projetos pular
- Tudo em que você está trabalhando esta semana. Reinstalar leva alguns minutos, mas também precisa de rede e pode trazer versões mais novas se o seu lockfile for frouxo.
- Projetos sem lockfile. Sem
package-lock.json,pnpm-lock.yamlouyarn.lock, uma reinstalação pode não dar as mesmas versões que você tinha. Confira antes se o lockfile está commitado. - Projetos com patches locais. Se você editou um arquivo dentro de
node_modulesà mão e nunca usoupatch-packageoupnpm patch, essa edição vai embora com a pasta. - Projetos antigos que dependem de um pacote que foi removido do npm depois, ou de um registro privado que você não alcança mais. É raro, mas é o único caso em que apagar perde algo para sempre.
- Tudo o que você precisa offline. Se você vai viajar e quer rodar o projeto no avião, deixe como está.
Com o pnpm, o node_modules é em grande parte links para um único store compartilhado, então apagar pastas de projetos libera menos do que o du sugere. Os arquivos só são liberados quando nada aponta para eles, e só depois do pnpm store prune. Veja como limpar os caches do npm, pnpm, Yarn e Bun.
Também vale olhar
Ao lado do node_modules, os projetos deixam saída de build: .next, .nuxt, dist, .turbo, .parcel-cache. Elas são refeitas na próxima build, mas confira se o dist não está commitado no git antes de removê-lo, já que alguns projetos o distribuem de propósito. Os projetos Python também deixam as próprias pastas pesadas, tratadas em como encontrar e apagar ambientes virtuais Python antigos.
Como o Levo faz
O Levo mantém um índice em tempo real do que enche o seu disco, então já sabe onde está cada node_modules e quanto ela pesa. Elas aparecem em Ready to free, em dependências de projetos, cada uma com tamanho e motivo, ao lado dos seus caches de pacotes.
O seu próprio agente de IA faz o julgamento. Ele lê cada projeto e decide se está parado, e o Levo só marca uma pasta quando nada está rodando dentro dela: nenhum servidor de desenvolvimento, nenhum arquivo aberto, nenhuma sessão de agente de código. Um projeto em que você mexeu esta manhã fica desmarcado. O agente só pode ler. É o Levo que apaga, e ele confere cada pasta de novo logo antes de removê-la.
Você escolhe um nível de limpeza, usa Select › Smartly, desmarca o que quiser manter e aperta Clean up. Com Move to Trash ativado, você pode usar Put back para devolver uma pasta. A configuração está descrita em Levo para desenvolvedores web. O monitoramento e as sugestões são grátis, e duas limpezas também, depois há uma licença vital.
Perguntas frequentes
Quanto espaço o node_modules usa?
Depende do projeto. Um app pequeno costuma ter de 200 a 400 MB e um monorepo grande pode passar de 2 GB. Ao longo de alguns anos de projetos, a maioria dos desenvolvedores encontra de 10 a 50 GB espalhados por dezenas de pastas.
Apagar o node_modules vai quebrar meu projeto?
Não. A pasta é refeita a partir do lockfile na próxima vez que você rodar npm install, pnpm install ou yarn. Os arquivos de código-fonte do projeto não são tocados. As exceções são arquivos editados à mão dentro da pasta e pacotes que foram retirados do npm.
É seguro apagar o node_modules com um servidor de desenvolvimento rodando?
Não faça isso. O servidor pode travar ou servir páginas quebradas, e um monitor de arquivos pode falhar no meio da exclusão. Pare o servidor primeiro.
Por que o rm -rf node_modules é tão lento?
Uma única pasta pode ter de 50.000 a 200.000 arquivos pequenos, e cada um precisa ser removido separadamente. É mais lento em um disco quase cheio. Apagar pelo Terminal é bem mais rápido do que mover a pasta para a Lixeira no Finder.
Preciso apagar o lockfile também?
Não. Mantenha o package-lock.json, o pnpm-lock.yaml ou o yarn.lock. É o registro que permite à reinstalação dar as mesmas versões.