Tenho vários projetos npm salvos em um diretório local. Agora quero fazer o backup dos meus projetos sem a node_modules
pasta, pois está ocupando muito espaço e também pode ser recuperada a qualquer momento usando npm install
.
Portanto, preciso de uma solução para excluir todas as pastas node_modules recursivamente de um caminho especificado usando a interface de linha de comando. Qualquer sugestão / ajuda é altamente apreciável.
-prune
é uma otimização importante. Será encontrado para não recursar nosnode_module
diretórios (para procurar node_modules aninhados)/node_modules/gulp-server-livereload/node_modules: Directory not empty
muitas pastas node_modules "internas". Como contornar isso?'{}' +
?{}
é um espaço reservado quefind
substitui o caminho do arquivo encontrado.+
dizfind
para anexar todos os caminhos de arquivo a um único comando em vez de executarrm
para cada um.Melhorando a resposta aceita,
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
Descobri que o comando seria executado por muito tempo para buscar todas as pastas e, em seguida, executar um comando delete, para tornar o comando recuperável, sugiro usar
\;
e ver o progresso do comando sendo executado, use-print
para ver o diretório sendo excluído.Nota: Você deve primeiro
cd
no diretório raiz e, em seguida, executar o comando ou em vez defind .
usarfind {project_directory}
Para deletar pastas uma por uma
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;
Para excluir pastas uma por uma e imprimir a pasta que está sendo excluída
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
Editar:
Para as pessoas que gostam de maneira interativa de fazer isso, consulte a resposta @jeckep, execute-o no diretório que deseja remover.
fonte
Experimente https://github.com/voidcosmos/npkill
encontrará todos os node_modules e permitirá que você os remova.
fonte
Eu descobri esta solução,
find
e especifique o nome da pasta.-exec rm -rf '{}' +
execute o seguinte comando para deletar pastas recursivamente
find /path -type d -name "node_modules" -exec rm -rf '{}' +
fonte
Isso funciona muito bem
find . -name "node_modules" -exec rm -rf '{}' +
fonte
bash
função para removernode_modules
. Ele removerá todos osnode_modules
diretórios recursivamente do diretório de trabalho atual, enquanto imprime os caminhos encontrados.Você só precisa colocar em algum lugar do seu
$PATH
rmnodemodules(){ find . -name 'node_modules' -type d -prune -exec echo '{}' \; -exec rm -rf {} \; }
fonte
Quando no Windows, uso o seguinte
.BAT
arquivo para excluirnode_modules
recursivamente da pasta atual:@for /d /r . %d in (node_modules) do @if exist %d (echo %d && rd %d /s /q)
Ou via
CMD.EXE
:cmd.exe /c "@for /d /r . %d in (node_modules) do @if exist %d (echo %d && rd %d /s /q)"
fonte