O pnpm é um gerenciador de pacotes rápido e com eficiência de espaço em disco. Ele usa um sistema de arquivos endereçável por conteúdo para armazenar todos os arquivos de todos os diretórios de módulo no disco. Ao usar npm ou Yarn, se você tiver 100 projetos que usam lodash, você terá 100 cópias de lodash no disco, enquanto que com pnpm, lodash será armazenado em uma memória endereçável por conteúdo.
pnpm 8.0 é lançado oficialmente, as atualizações são as seguintes:
grandes mudanças
- Fim do suporte para Node.js 14
- atualização de configuração
auto-install-peers
: ativado por padrãodedupe-peer-dependents
: Ativado por padrão.resolve-peers-from-workspace-root
: Ativado por padrão.save-workspace-protocol
: A configuração padrão érolling
.resolution-mode
: A configuração padrão élowest-direct
.publishConfig.linkDirectory
: Ativado por padrão.
- Modificação do arquivo de bloqueio
- Lockfile v6 é adotado. Este novo formato melhora a legibilidade dos Lockfiles removendo o hash do ID do pacote. Ele também faz alguma reorganização dos campos
importers
na seção . Novospnpm-lock.yaml
arquivos são mais resistentes a conflitos de mesclagem do git - O
pnpm-lock.yaml
camporesolution
é removido do objeto nele. - Mesmo para projetos sem dependências, um Lockfile é gerado.
- Lockfile v6 é adotado. Este novo formato melhora a legibilidade dos Lockfiles removendo o hash do ID do pacote. Ele também faz alguma reorganização dos campos
- outras mudanças
package.json
Quando houverfiles
um campo nele, apenas os arquivos listados nele serão implantados. A mesma lógica se aplica à injeção de pacotes. Esse comportamento pode ser alterado[deploy-all-files](<https://pnpm.io/8.x/npmrc#deploy-all-files>)
definindo otrue
- As dependências diretas são removidas. Se existir uma dependência no projeto e na raiz do espaço de trabalho, ela será vinculada apenas à raiz do espaço de trabalho.
- suporte pnpm v7
- O pnpm v7 provavelmente não terá novos recursos depois disso, mas continuará recebendo correções de bugs por alguns meses e correções de bugs por pelo menos um ano.
Para mais detalhes, consulte: https://github.com/pnpm/pnpm/releases/tag/v8.0.0