# Caches de desenvolvedor no Windows: o que npm, pip e Gradle guardam

Um projeto quase não cresceu, e mesmo assim a unidade C ganhou vários GB. Achar um diretório do npm, do pip ou do Gradle não é motivo para apagá-lo inteiro. Caches de download, dependências do projeto, saída de build e versões salvas de ferramentas fazem trabalhos diferentes, e reconstruir depende de as origens continuarem disponíveis.

## Ache o local que a ferramenta realmente usa

Num terminal com as ferramentas relevantes instaladas, estes comandos mostram o local do cache do npm e a informação do cache do pip sem excluir conteúdo:

```powershell
npm config get cache
python -m pip cache info
```

A consulta do pip usa o ambiente selecionado por `python`. Se você mudou os locais de cache, siga a saída. A [referência de configuração do npm](https://docs.npmjs.com/cli/v11/commands/npm-config/) e a [referência de cache do pip](https://pip.pypa.io/en/stable/cli/pip_cache/) descrevem as consultas. O caminho padrão de um PC não é a configuração de todo projeto.

## Distinga quatro tipos de diretório

| Tipo | Exemplos | Confira antes de remover |
| --- | --- | --- |
| Caches de download de pacotes | cache do npm, caches HTTP e de wheel do pip | Se uma instalação posterior precisa de downloads, sobretudo offline |
| Dependências do projeto | `node_modules`, ambientes virtuais, `vendor` | Se pacotes, lockfiles, origens e passos de instalação continuam disponíveis |
| Saída de build | `dist`, `build`, `obj` | Se é conteúdo gerado e se contém algo acrescentado à mão |
| Versões de ferramenta e repositórios locais | Versões do Gradle baixadas e alguns pacotes instalados localmente | Se a próxima sincronização ou o próximo build precisa deles direto |

Reconstruir tem um custo. Acesso à rede, origens disponíveis, autenticação e requisitos offline importam. Um diretório de dependências não é um alvo universal de limpeza só porque o nome é familiar.

## Um problema de cache é diferente de um problema de dependência

O cache de download do npm valida o conteúdo, e a [documentação](https://docs.npmjs.com/cli/v11/commands/npm-cache/) descreve buscar de novo dados corrompidos. Um erro de instalação não é motivo suficiente para esvaziar o cache. Uma falha de rede, uma versão travada indisponível ou um conflito de dependência podem continuar iguais depois.

O pip separa respostas HTTP em cache de wheels em cache, inclusive pacotes instaláveis construídos antes. A [documentação de cache](https://pip.pypa.io/en/stable/topics/caching/) explica os dois. `pip cache list` lista wheels, não todo arquivo do diretório de cache. Ambientes virtuais isolam dependências instaladas, mas vários ambientes podem compartilhar um cache do pip. Selecionar outro `python` não garante um local de cache separado; leia a saída da consulta.

## Um lockfile registra versões, não um backup de pacotes

Considere um projeto offline com o `package-lock.json` intacto, mas com `node_modules` e os caches de download removidos. O registro de versões permanece, mas os pacotes necessários para instalar podem estar indisponíveis. Um lockfile controla a seleção de versão; não preserva os arquivos dos pacotes nem o acesso a um registro privado.

A [documentação de cache de dependências do Gradle](https://docs.gradle.org/current/userguide/dependency_caching.html) explica por que builds offline exigem os artefatos necessários localmente. O [guia de diretórios e retenção](https://docs.gradle.org/current/userguide/directory_layout.html) separa caches específicos de versão, dependências compartilhadas e distribuições do Wrapper. Antes de limpar um diretório `.gradle` grande, identifique qual categoria cresceu. Entradas antigas gerenciadas pela ferramenta e dependências de que um projeto ativo ainda precisa merecem decisões diferentes.

<figure class="blog-diagram">
  <picture>
    <source media="(max-width: 900px)" srcset="/img/blog/windows-windows-developer-caches-en-mobile.webp" type="image/webp" width="768" height="1500">
    <img src="/img/blog/windows-windows-developer-caches-en.webp" width="1360" height="454" loading="lazy" alt="O armazenamento de desenvolvimento tem papéis diferentes">
  </picture>
  <figcaption>Os quatro papéis de diretório têm custos de reconstrução diferentes. Um lockfile registra versões, não preserva pacotes nem toolchains.</figcaption>
</figure>

## O que o Mole trata e o que fica com a ferramenta

O Mole para Windows lista caches reconhecidos do npm, do pip e outros. Conteúdo em uso continua protegido, e itens com dados que não se regeneram sozinhos esperam revisão. Ele não trata a pasta de dependências de todo projeto como cache genérico. Selecionar um item de limpeza não autoriza encerrar todo processo de Node.js ou Python no PC.

Os `caches` e `wrapper\dists` do Gradle ficam fora do escopo de limpeza do Mole. A sincronização do Android Studio e o próximo build podem precisar deles direto. Deixe o Gradle gerenciar a retenção, em vez de limpar uma versão só para baixá-la de novo.

Gerencie a saída do projeto conforme as instruções desse projeto. A tabela explica papéis de diretório; não significa que o Mole varre e apaga automaticamente todo caminho de projeto listado. Origem, configuração, sessões e modelos locais não viram caches só por estarem em pastas de desenvolvimento.

## Verifique com o mesmo projeto depois

Mantenha uma cópia independente de qualquer coisa de que você precise, depois trate os caches selecionados. Repita a instalação ou o build original do projeto e anote quaisquer downloads necessários. Não limpe dependências, versões de ferramenta e caches de download juntos logo antes de uma apresentação ou viagem offline.

Se discos virtuais, modelos ou saídas grandes ocupam a maior parte do armazenamento, use o [guia de arquivos grandes](/pt-br/windows/blog/find-large-files-on-windows). O [guia de cache](/pt-br/windows/blog/windows-cache-cleanup) separa caches comuns de dados pessoais.


Canonical: https://mole.fit/pt-br/windows/blog/windows-developer-caches
