Como ativar e usar o pnpm no ServBay
O pnpm é uma ferramenta moderna e eficiente de gerenciamento de pacotes Node.js, criada para resolver as limitações dos gerenciadores de pacotes tradicionais como npm e yarn ao lidar com dependências. Utilizando um sistema de arquivos endereçado por conteúdo com hard links e links simbólicos, o pnpm reduz significativamente o uso de espaço em disco e acelera a instalação de dependências. Para desenvolvedores que utilizam o ServBay para projetos Node.js, dominar o pnpm proporciona um gerenciamento de dependências mais ágil e eficiente.
O pacote Node.js fornecido pelo ServBay já integra o corepack, uma ferramenta experimental oficial do Node.js para gerenciar e invocar versões específicas de gerenciadores de pacotes (npm, yarn, pnpm). Normalmente, após instalar o Node.js do ServBay, você pode habilitar o pnpm via comando do corepack.
Ativando o pnpm
Se você perceber que o comando pnpm não está disponível diretamente, isso provavelmente ocorre porque ainda não foi ativado pelo corepack. Siga os passos abaixo para habilitá-lo:
Abra o aplicativo de Terminal.
Digite o seguinte comando para ativar o
pnpmatravés docorepack:bashcorepack enable pnpm1Se o comando for executado com sucesso, geralmente não haverá nenhuma mensagem de retorno. Isso significa que o
corepackjá vinculou o comandopnpmao seu sistema.Confirme se o
pnpmfoi ativado corretamente e verifique sua versão:bashpnpm -v1Ao rodar esse comando, deve aparecer o número da versão atual do
pnpm, por exemplo:bash9.1.01Se o terminal retornar a versão, o
pnpmestá pronto para ser utilizado.
Avisos de download do corepack
Ao usar o comando pnpm, caso veja uma mensagem semelhante à abaixo, isso significa que o corepack está baixando ou atualizando a versão especificada do pnpm. Esse é o comportamento esperado do corepack para garantir que você sempre utilize a versão do pnpm necessária para o projeto ou a mais recente.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]1
2
3
2
3
Digite Y e pressione Enter para permitir que o corepack faça o download, depois continue com o comando do pnpm. Após o download, o comando será executado normalmente, mostrando a versão ou o resultado do comando executado.
Principais vantagens e exemplos de uso do pnpm
O pnpm foi projetado para gerenciar dependências de forma eficiente. Ele armazena todos os pacotes em um armazenamento global endereçado por conteúdo, onde cada versão de pacote é salva apenas uma vez. Quando o projeto precisa de uma dependência, o pnpm cria um hard link a partir do armazenamento global, e a pasta node_modules do projeto utiliza links simbólicos para formar uma estrutura plana. Diferente do problema de dependências fantasmas do npm, o pnpm restringe rigorosamente os módulos acessíveis no projeto, permitindo apenas o uso de dependências diretamente declaradas.
Essas características proporcionam vantagens claras:
- Economia de espaço em disco: Diferentes projetos compartilham arquivos de dependências da mesma versão, evitando duplicidade.
- Instalação rápida: Na maioria das vezes, os arquivos de dependência já estão disponíveis globalmente, sendo necessário apenas criar links, processo muito mais rápido do que baixar ou copiar arquivos.
- Estrutura de dependências rigorosa: Evita o problema de dependências fantasmas, tornando a relação entre dependências mais clara e gerenciável.
Veja a seguir exemplos de comandos comuns usando o pnpm no ambiente ServBay:
Supondo que seu projeto esteja em um subdiretório da pasta raiz do ServBay, por exemplo /Applications/ServBay/www/my-servbay-app.
Instalando as dependências do projeto
Após entrar no diretório do projeto, utilize o comando pnpm install para instalar todas as dependências especificadas no package.json:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install1
2
2
O pnpm irá verificar o armazenamento global, baixar os pacotes ausentes e criar links na pasta node_modules do projeto.
Adicionando uma nova dependência
Para adicionar uma nova dependência ao projeto, como lodash:
bash
pnpm add lodash1
Isso fará o download do pacote lodash (caso ainda não esteja no armazenamento global), criará os links necessários e atualizará automaticamente o package.json e o arquivo pnpm-lock.yaml do projeto.
Removendo uma dependência
Para remover uma dependência que não é mais necessária, como lodash:
bash
pnpm remove lodash1
Assim, o pacote lodash será removido das dependências do projeto e os arquivos package.json e pnpm-lock.yaml serão atualizados.
Executando scripts
O pnpm também pode ser usado para executar scripts definidos no campo scripts do package.json:
bash
pnpm run dev
# Ou simplesmente
pnpm dev1
2
3
2
3
Executando comandos de pacotes (pnpx)
Semelhante ao npx, o pnpm oferece o pnpx (ou diretamente pnpm exec) para executar comandos instalados localmente no diretório node_modules/.bin do projeto sem precisar instalar globalmente:
bash
pnpm exec webpack --version
# Ou, de forma abreviada
pnpx webpack --version1
2
3
2
3
Conclusão
Com o comando corepack enable pnpm, você pode ativar facilmente o pnpm no ambiente Node.js do ServBay. Com o poder do pnpm para gerenciar dependências de forma eficiente, é possível obter instalações mais rápidas, maior produtividade e economia de espaço em disco em seus projetos Node.js. Para quem busca a melhor experiência de desenvolvimento com ServBay, o pnpm é uma ferramenta altamente recomendada.
