AskCleanAskClean

Como apagar node_modules no Mac sem perder seu projeto

Equipe AskClean · Atualizado 2026-08-05

Você pode apagar node_modules se package.json, o lockfile correto e todas as dependências necessárias continuarem disponíveis. Meça primeiro cada projeto, encerre os processos ativos e mova para a Lixeira somente a pasta de dependências confirmada. Depois, reinstale com o mesmo gerenciador de pacotes e só esvazie a Lixeira quando build, testes e app voltarem a funcionar.

Braço robótico move um bloco de uma rede de dependências para uma caixa de reciclagem, ao lado de um bloco protegido, um diagrama do projeto e um cadeado
Remova somente a pasta de dependências que pode ser reconstruída; preserve manifesto, lockfile, configuração e código-fonte.

Separe node_modules do projeto e do cache

A pasta node_modules contém a árvore de dependências instalada de um projeto e só pode ser reconstruída se todos os insumos continuarem disponíveis. Ao apagá-la, o projeto deixa de executar e compilar até a reinstalação terminar. package.json, lockfiles, código-fonte, configuração, patches, arquivos de workspace e histórico do Git são a receita e não devem ser apagados. O cache compartilhado de downloads do npm, normalmente em ~/.npm, é outra categoria de armazenamento.

Confirme que as dependências podem ser reconstruídas

Um lockfile torna a instalação mais previsível, mas não é uma cópia dos pacotes. Confirme o gerenciador e a versão usados no projeto, o acesso a registries privados, à VPN, a dependências Git e file:, a workspaces locais, a downloads externos e às toolchains nativas. O npm v12 não lê nem grava npm-shrinkwrap.json. Se esse for o único lockfile de um projeto legado, renomeie-o para package-lock.json, cujo formato é idêntico, antes de usar o npm v12. Se package-lock.json já existir, não o sobrescreva: compare e reconcilie os arquivos em uma alteração separada. Toda alteração existente apenas dentro de node_modules será perdida com a exclusão.

  1. Na raiz do projeto, execute pwd e du -sh ./node_modules; anote também o espaço livre do macOS.
  2. Confira package.json, o lockfile correto, a configuração do workspace e as alterações locais; se um projeto legado tiver somente npm-shrinkwrap.json, renomeie-o para package-lock.json antes de usar o npm v12, sem sobrescrever um arquivo existente.
  3. Verifique o acesso a registries privados, dependências Git e file:, pacotes locais, downloads externos e ferramentas de compilação; encerre todo processo que use node_modules.
  4. Mova para a Lixeira somente a pasta node_modules confirmada e reinstale a partir da raiz correta com o gerenciador e o lockfile definidos pelo repositório.
  5. Execute build, testes, lint e o app; meça novamente o espaço e só então esvazie a Lixeira.

Não use node_modules como única cópia de um pacote ou de uma correção manual. Se uma dependência exata não puder mais ser obtida e não estiver arquivada em outro lugar, apagá-la pode inutilizar um projeto antigo.

Remova uma única pasta de dependências confirmada

No projeto confirmado, mova apenas node_modules para a Lixeira pelo Finder, nunca o repositório pai. rm -rf ./node_modules ignora a Lixeira e é irreversível; antes, confirme novamente a raiz com pwd. Reinstale a partir dessa raiz com npm ci quando package-lock.json for a fonte oficial, ou use o fluxo de lockfile imutável definido pelo repositório para pnpm, Yarn ou Bun. Trate um monorepo como um único sistema governado pelo lockfile da raiz.

Reinstale e valide o projeto inteiro

O fim da instalação, sozinho, não prova que o projeto foi recuperado. Execute build, testes, lint e inicialização documentados: módulos nativos e scripts de ciclo de vida ainda podem falhar após uma mudança de toolchain. A recuperação exige downloads, descompactação, links e talvez compilação. Se falhar, restaure a pasta da Lixeira e diagnostique credenciais, rede, versões e lockfile antes de limpar outro projeto.

Limites de exclusão e custo de recuperação

Encontre pastas node_modules grandes, proteja o código-fonte e o lockfile, remova as dependências projeto por projeto e reinstale com npm, pnpm, Yarn ou Bun.

Item ou açãoOnde verificarConsequência
Separe node_modules do projeto e do cacheprojeto/node_modulesA pasta node_modules contém a árvore de dependências instalada de um projeto e só pode ser reconstruída se todos os insumos continuarem disponíveis. Ao apagá-la, o projeto deixa de executar e compilar até a reinstalação terminar. package.json, lockfiles, código-fonte, configuração, patches, arquivos de workspace e histórico do Git são a receita e não devem ser apagados. O cache compartilhado de downloads do npm, normalmente em ~/.npm, é outra categoria de armazenamento.
Confirme que as dependências podem ser reconstruídaspackage.json + lockfile + configuração do workspaceUm lockfile torna a instalação mais previsível, mas não é uma cópia dos pacotes. Confirme o gerenciador e a versão usados no projeto, o acesso a registries privados, à VPN, a dependências Git e file:, a workspaces locais, a downloads externos e às toolchains nativas. O npm v12 não lê nem grava npm-shrinkwrap.json. Se esse for o único lockfile de um projeto legado, renomeie-o para package-lock.json, cujo formato é idêntico, antes de usar o npm v12. Se package-lock.json já existir, não o sobrescreva: compare e reconcilie os arquivos em uma alteração separada. Toda alteração existente apenas dentro de node_modules será perdida com a exclusão.
Remova uma única pasta de dependências confirmadaLixeira / reinstalação pelo gerenciador de pacotesNo projeto confirmado, mova apenas node_modules para a Lixeira pelo Finder, nunca o repositório pai. rm -rf ./node_modules ignora a Lixeira e é irreversível; antes, confirme novamente a raiz com pwd. Reinstale a partir dessa raiz com npm ci quando package-lock.json for a fonte oficial, ou use o fluxo de lockfile imutável definido pelo repositório para pnpm, Yarn ou Bun. Trate um monorepo como um único sistema governado pelo lockfile da raiz.
Reinstale e valide o projeto inteirobuild + testes + inicialização do appO fim da instalação, sozinho, não prova que o projeto foi recuperado. Execute build, testes, lint e inicialização documentados: módulos nativos e scripts de ciclo de vida ainda podem falhar após uma mudança de toolchain. A recuperação exige downloads, descompactação, links e talvez compilação. Se falhar, restaure a pasta da Lixeira e diagnostique credenciais, rede, versões e lockfile antes de limpar outro projeto.

Perguntas frequentes

É seguro apagar node_modules no Mac?

Em geral, sim, se você preservar package.json, o lockfile correto, os arquivos do workspace, o código-fonte e todas as fontes das dependências. O projeto não voltará a funcionar até a reinstalação e as verificações terminarem.

Devo apagar package-lock.json junto com node_modules?

Não. package-lock.json é uma entrada da instalação reproduzível do npm. O npm v12 não lê nem grava npm-shrinkwrap.json; se esse for o único lockfile de um projeto legado, renomeie-o para package-lock.json, sem sobrescrever um arquivo existente.

node_modules e o cache do npm são a mesma coisa?

Não. node_modules é a árvore de dependências instalada de um projeto; o cache compartilhado do npm costuma ficar em ~/.npm. Apagar uma categoria não remove a outra.

Fontes

Mais guias de armazenamento para desenvolvedores