Estamos no final do ano e foi um bom ano para o pnpm, vamos ver como foi.
Uso
Números sobre Downloads
Meu objetivo este ano era bater Bower no número de downloads. Conseguimos atingir essa meta em novembro:
pnpm foi baixado cerca de 3 vezes mais em 2021 do que em 2020:
Esses números nem sequer medem todas as diferentes formas que pnpm pode ser instalado! Eles só medem os downloads do pacote npm do pnpm. Este ano adicionamos também versões binárias compiladas de pnpm, que são enviadas de forma diferente.
Visitas na Documentação
Coletamos algumas estatísticas não personalizadas de nossa documentação usando o Google Analytics. Em 2021, algumas vezes tivemos mais de 2.000 visitantes únicos dentro de uma semana.
A maioria dos nossos usuários são dos Estados Unidos e da China.
Estrelas no GitHub
Nosso repositório principal do GitHub recebeu +5.000 stars este ano.
Novos usuários
Our biggest new user this year is Bytedance (the company behind TikTok).
Além disso, muitos projetos grandes de código aberto começaram a usar pnpm. Alguns mudaram para pnpm por conta do seu ótimo suporte a monorepos:
Alguns mudaram porque gostam de quão eficiente, rápido e bonito o pnpm é:
Features que se destacam
Novo formato de lockfile (desde a v6.0.0)
Uma das primeiras e mais importantes mudanças deste ano foi o novo formato do arquivo pnpm-lock.yaml
. Esta foi uma breaking change, então tivemos que lançar a v6. Mas foi um sucesso. O antigo lockfile estava causando conflitos no Git com frequência. Desde que o novo formato foi introduzido, não recebemos nenhuma reclamação sobre conflitos do Git.
Gerenciando Versões do Node (desde v6.12.0)
Enviamos um novo comando (pnpm env
) que permite gerenciar versões do Node.js. Então você pode usar pnpm em vez de gerenciadores de versão Node.js como nvm ou Volta.
Além disso, o pnpm é fornecido como um executável autônomo, para que você possa executá-lo mesmo sem o Node.js pré-instalado no sistema.
Gerenciando Versões do Node (desde v6.20.0)
Você pode "injetar" uma dependência local. Por padrão, as dependências locais são vinculadas a node_modules
, mas com esse novo recurso você pode instruir o pnpm a fazer um link físico dos arquivos do pacote.
Relatórios aprimorados de problemas de dependência de pares (desde v6.24.0)
Os problemas de dependência de pares costumavam ser impressos como texto simples e era difícil entendê-los. Eles agora estão todos agrupados e impressos em uma boa estrutura de hierarquia.
A Concorrência
Yarn
Yarn adicionou um linker pnpm em v3.1. Para que o Yarn possa criar uma estrutura de diretório de módulos semelhante à que o pnpm cria.
Além disso, a equipe Yarn planeja implementar um armazenamento enderesável por conteúdo para ser mais eficiente em espaço em disco.
npm
A equipe do npm decidiu adotar também a estrutura de diretórios de módulos de nó com link simbólico que o pnpm usa (relacionado RFC).
Outros
Bun escrito em Zig e Volt escrito em Rust ambos afirmam ser mais rápido do que npm/Yarn/pnpm. Ainda não fiz benchmark desses novos gerentes de pacotes.
Planos futuros
Mais rápido, melhor, melhor.