Pular para o conteúdo principal
Versão: 7.x

Motivação

Economizando espaço em disco e melhorando a velocidade de instalação

When using npm, if you have 100 projects using a dependency, you will have 100 copies of that dependency saved on disk. Com pnpm, a dependência será armazenada em um armazenamento de conteúdo endereçável, então:

  1. Se você depender de diferentes versões da dependência, apenas os arquivos diferentes serão armazenados. Por exemplo, se ela tiver 100 arquivos e uma nova versão haver uma alteração em apenas um desses arquivos, o comando pnpm update armazenará apenas 1 novo arquivo, ao invés de clonar toda a dependência apenas para uma mudança única.
  2. Todos os arquivos são armazenados em um único local do disco. Quando os pacotes são instalados, seus arquivos são vinculados a partir desse local único, não consumindo espaço adicional em disco. Isso permique que você compartilhe a mesma versão de dependências entre diversos projetos.

Como resultado, você otimiza muito espaço em seu disco proporcionalmente ao número de projetos e dependências, tendo assim instalações muito mais rápidas!

Criando um diretório node_modules não plano

Ao instalar as dependências utilizando npm ou o clássico Yarn, todos os pacotes são diretamente ligados à raiz do diretório de módulos. Como resultado, o código-fonte tem acesso à dependências que não foram adicionadas ao projeto.

Por padrão, o pnpm utiliza symlinks (links simbólicos) para adicionar apenas as dependências ligadas diretamente à raiz do diretório de módulos. Se você deseja obter mais detalhes sobre a estrutura única da node_modules que o pnpm cria e por que ela funciona bem com o ecossistema Node.js, leia:

tip

Se suas ferramentas não funcionarem muito bem com symlinks (links simbólicos), você ainda pode usar pnpm e definir a configuração de node-linker para hoisted. Isso instruirá o pnpm a criar um diretório da node_modules semelhante aos criados pelo npm e o clássico Yarn.