Executando verificação de segurança...
2

Pitch: Criei o Pumu: um limpador de node_modules (e outras tranqueiras) que não trava seu PC

Fala galera, beleza?

Cara, esse final de semana eu tava dando aquela geral no meu SSD e, putz... tava um caos. Quem nunca, né? A gente vai criando projeto, testando lib, e quando vê tem uns 50GB de node_modules, target de Rust e .venv de Python espalhados por tudo que é canto. É mó chato ter que ficar caçando pasta por pasta pra apagar e liberar um espaço para outras coisas importantes.

Aí, em vez de só aceitar o destino, resolvi codar uma ferramenta pra resolver isso de um jeito rápido: o Pumu (Package Manager Utility).

O que ele faz?

Basicamente, o Pumu é um CLI em Go que varre suas pastas e limpa as dependências pesadas de um jeito inteligente. Ele não sai apagando tudo igual um doido, ele saca qual gerenciador de pacotes você tá usando (npm, yarn, pnpm, bun, cargo, go, pip...) e limpa só o que deve.

O que eu achei mais massa de fazer foi a parte da performance. Em vez de apagar uma pasta por vez, usei goroutines com um semáforo (travei em 20 operações por vez) pra calcular o tamanho e deletar tudo em paralelo e isso deixou o ficar muito rápido

Os modos de uso são bem diretos:

  • pumu: No diretório atual, ele faz um 'refresh' de informações do projeto.
  • pumu list: Só pra ver o estrago. Ele lista tudo que pode ser apagado e quanto de espaço você vai ganhar.
  • pumu sweep: O modo "faxina pesada". Ele sai limpando tudo que encontrar de pesado recursivamente.
  • pumu sweep --reinstall: Aqui ele vai fazer a faxina pesada e ainda reinstala tudo limpo para vc.

Por que usar?

Pq eu cansei de ferramentas que travam o I/O do disco ou que são lentas demais. O Pumu ignora pastas tipo .git ou .vscode automaticamente, então é bem seguro de rodar.

O código tá todo em Go e tá lá no GitHub: https://github.com/CarlosEduJs/pumu

Queria saber o que vcs acham... tipo, faz sentido pra vcs? Algum gerenciador de pacotes que eu esqueci e que vcs usam muito?

Se quiserem testar e dar um feedback, vc pode instalar a primeira versão beta (v1.0.0-beta.1), vamo que vamo! Valeu!

Carregando publicação patrocinada...
1

Muito show, node modules venvs de python sao sempre descartáveis, mas vamos criando projetos e elas ficamdo, qd você ve tem mais de 50gb so delas.