Quem desenvolve em node já percebeu que toda vez que começamos um projeto e executamos npm install
, uma infinidade de dependências são instaladas e na maioria das vezes não nos preocupamos com a quantidade de arquivos e o espaço que eles podem ocupar em nosso disco.
Uma única pasta node_modules pode chegar a pesar entre 200mb e 1gb! Multiplique isso pela quantidade de projetos que se tem em seu computador e teremos um verdadeiro problema de armazenamento.
Recentemente precisei fazer um backup da minha pasta de projetos, mas ela estava pesando algo em torno de 20gb, o que tornou o processo extremamente lento, mesmo comprimindo, ainda precisava otimizar mais. Decidi então remover todas as pastas node_modules e para minha não surpresa, o tamanho reduziu para apenas 2gb!
Encontrando e listando todas as pastas node_modules
Primeira vamos listar todas as pastas node_modules dentro da pasta em que queremos procurar recursivamente, é importante analisar com calma para não deletar algo indesejado.
Mac / Linux:
$ cd projects
$ find . -name "node_modules" -type d -prune -print | xargs du -chs
Windows:
$ cd projects
$ FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" echo %d"
Eu estou usando o emulador de terminal do GitBash que me permite o uso do comando rm -rf no Windows.
Deletando todas as pastas node_modules
Agora vamos adicionar ao nosso comando a opção de deletar. ESSE PROCESSO É IRREVERSÍVEL, tenha certeza do que está fazendo.
Mac / Linux:
$ cd projects
$ find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
Windows:
$ cd projects
$ FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" rm -rf "%d"
Windows PowerShell:
Get-ChildItem -Path "." -Include "node_modules" -Recurse -Directory | Remove-Item -Recurse -Force