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
pnpm
através docorepack
:bashcorepack enable pnpm
1Se o comando for executado com sucesso, geralmente não haverá nenhuma mensagem de retorno. Isso significa que o
corepack
já vinculou o comandopnpm
ao seu sistema.Confirme se o
pnpm
foi ativado corretamente e verifique sua versão:bashpnpm -v
1Ao rodar esse comando, deve aparecer o número da versão atual do
pnpm
, por exemplo:bash9.1.0
1Se o terminal retornar a versão, o
pnpm
está 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 install
1
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 lodash
1
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 lodash
1
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 dev
1
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 --version
1
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.