Você já encontrou essa situação? Para economizar espaço no computador, você configurou o store do pnpm em um drive externo, mas um dia você não trouxe o drive, ou quis mudar o local de armazenamento, e o pnpm começou a lançar erros dizendo que não conseguia encontrar o diretório? Mesmo conectar o drive de volta parece estranho?
Isso está, na verdade, relacionado ao princípio de funcionamento único do pnpm. Hoje vamos falar sobre o mecanismo “Store” do pnpm e como resgatá-lo quando ele “perde a conexão”!
Como exatamente o pnpm economiza espaço?
Antes de começarmos a corrigir, vamos revisar rapidamente a mágica de economia de espaço do pnpm.
Diferente do npm, que copia um conjunto completo de pacotes em cada node_modules de projeto, o pnpm usa Content-addressable store (Armazenamento endereçável por conteúdo) e Hard Links (Links físicos).
A maneira como o pnpm funciona é que todos os arquivos de pacotes, na verdade, existem apenas em um “grande armazém” no seu computador, e o diretório do seu projeto apenas vincula a este armazém. Isso não apenas economiza espaço no disco rígido, mas também torna a instalação surpreendentemente rápida.
| Item | pnpm | npm |
|---|---|---|
| Método de Armazenamento | Global Store + Hard Links | Cópia independente por projeto |
| Uso de Espaço | Muito baixo (armazena apenas uma cópia por versão) | Alto (cópias duplicadas) |
| Velocidade de Instalação | Rápido (apenas criando links) | Lento (precisa extrair e gravar) |
Por que o drive externo causa erros no pnpm?
Quando você configura o pnpm store em um drive externo para economizar espaço no SSD local, surgem armadilhas em potencial:
| Situação | Descrição |
|---|---|
| Caminho Inválido | Quando o drive não está conectado, o pnpm não consegue encontrar o store-dir configurado originalmente, e a instalação relatará um erro diretamente e sairá. |
| Falha de Hard Link | Como os Hard Links não podem cruzar partições, se o seu projeto estiver no Drive A e o store estiver no Drive B, o pnpm é forçado a usar a cópia, o que perde a vantagem original e pode até causar erros de execução devido a caminhos de cache bagunçados. |
Encontrando essa situação, precisamos “calibrar” manualmente.
Solução 1: Calibrar, Reconfigurar Caminho do Store
Se você decidir alterar o local do store, a maneira mais direta é dizer ao pnpm onde está o novo store. Você pode usar o seguinte comando:
pnpm config set store-dir <seu_novo_caminho_de_diretório>
Por exemplo, configurando o pnpm store em ~/.pnpm-store no diretório home do usuário:
pnpm config set store-dir ~/.pnpm-store
Se você não tiver certeza de onde o store atual está configurado, você pode consultar primeiro:
pnpm store path
Após a configuração ser concluída, o pnpm saberá de onde pegar os pacotes a partir de agora.
Solução 2: Começar de Novo, Reconstruir Links
Às vezes, depois de alterar o caminho, o projeto ainda tem alguns erros residuais antigos. Neste momento, “começar de novo” geralmente é o remédio mais eficaz:
| Etapa | Descrição |
|---|---|
| 1 | Exclua a pasta node_modules no projeto. |
| 2 | Exclua pnpm-lock.yaml (se for um erro estranho causado por caminhos, recomenda-se regenerar o arquivo de bloqueio também). |
| 3 | Execute pnpm install para reconstruir os links. |
Isso força o pnpm a puxar os links corretos do store para o seu projeto com base na sua configuração mais recente.
Como alocar para ser mais suave?
Se você alterna frequentemente entre diferentes ambientes, ou se preocupa com a instabilidade do drive externo, a configuração ideal é: Mantenha o pnpm store no SSD local, e o código do projeto pode ficar no drive externo.
Por quê? Porque o store geralmente não muda com muita frequência e, embora tenha volume, a soma total distribuída entre os projetos é, na verdade, muito menor que a do npm. Manter o armazém em um caminho local estável (por exemplo, o padrão do macOS ~/Library/pnpm/store) permite inicializar novos projetos sem problemas em outros lugares, mesmo sem o drive externo.
Este conceito de desenvolvimento Stateless (Sem estado) torna seu ambiente de desenvolvimento mais flexível!
Conclusão: Manter o Store Estável Economiza Problemas
A chave para gerenciar o pnpm store está na palavra “estabilidade”. Se você encontrar problemas de caminho, você pode fazer isso:
| Etapa | Descrição |
|---|---|
| 1 | Primeiro verifique e altere a configuração store-dir. |
| 2 | Limpe pacotes antigos: pnpm store prune (isso ajuda você a limpar arquivos de pacotes que ninguém está usando, emagrecendo o disco rígido) |
| 3 | Reinstale os pacotes pnpm install |
Espero que este artigo ajude a todos a sair do buraco do caminho do pnpm e aproveitar a diversão do desenvolvimento de alta velocidade!