CEVIU Logo
Voltar
Por que o Drizzle ORM ficou um mês sem conseguir publicar atualizações no NPM

MiB: por que o Drizzle ORM ficou um mês sem conseguir publicar atualizações no NPM

Aprofundamento CEVIU

Aprofundamento

O limite de 100 MiB no NPM e o gargalo do Drizzle ORM

O ecossistema JavaScript enfrentou um problema de infraestrutura raro em junho de 2026. O Drizzle ORM, projeto popular de mapeamento de objetos, ficou um mês sem conseguir publicar atualizações no registro. O motivo foi o atingimento do limite de 100 MiB no tamanho do packument. Esse documento JSON armazena os metadados de todas as versões de um pacote. A análise técnica foi detalhada por Evert no artigo original do blog da vlt.io.

O NPM foi construído originalmente sobre o CouchDB. Para que a CLI saiba todas as versões disponíveis, o registro cria o packument acumulando os manifests de cada release. O Drizzle possui muitas exportações ESM. Isso faz cada manifest ocupar cerca de 131 KB. A prática de publicar snapshots de desenvolvimento a partir de commits do git acelerou o acúmulo. O projeto atingiu o teto de 763 releases e travou. O NPM bloqueia a exclusão de versões após 72 horas por questões de segurança. A equipe precisou acionar o suporte para limpar versões antigas manualmente.

Por que isso importa

Entender o packument é crucial para a experiência do desenvolvedor e otimização de builds. Quando você instala um pacote sem usar o lockfile, o cliente baixa o arquivo inteiro. Um documento gigantesco degrada a performance de instalações limpas e consome banda desnecessária. Manter o package.json enxuto e evitar publicar builds de desenvolvimento no registro público são práticas essenciais.

A solução proposta por Evert aponta para o futuro da gestão de dependências. Os clientes poderiam informar ao registro apenas as faixas de versão estáveis que precisam. Registros alternativos já testam essa abordagem com listas de permissão. Eles reduziram o tamanho do packument do Drizzle para apenas 1.7 MiB. Isso mostra que as ferramentas de empacotamento precisam acompanhar a complexidade das exportações modernas.

Linha do tempo

  1. Equipe do Drizzle ORM reporta publicamente a impossibilidade de publicar novas versões no NPM.

  2. NPM resolve o problema após remover versões antigas não utilizadas com o apoio do suporte técnico.

Perguntas frequentes

O que é o packument no registro do NPM?

O packument é um documento JSON que armazena os metadados e os manifests de todas as versões já publicadas de um pacote. Ele é baixado integralmente pela CLI sempre que você instala uma dependência sem usar um arquivo de lock.

Por que o Drizzle ORM atingiu o limite de tamanho tão rápido?

O pacote possui muitas exportações ESM individuais, o que faz cada manifest ocupar cerca de 131 KB. A prática de publicar automaticamente snapshots de desenvolvimento a partir de commits do git acelerou o acúmulo até bater o teto de 100 MiB.

Como evitar que meu projeto atinja o limite de 100 MiB?

A principal recomendação é não publicar builds de desenvolvimento ou snapshots no registro público. Você deve usar registros alternativos para esses casos e monitorar o tamanho total do packument para manter o package.json enxuto.

É possível apagar versões antigas no NPM para liberar espaço?

O próprio NPM impede a exclusão de versões após 72 horas da publicação para garantir segurança e estabilidade. Para limpar versões antigas depois desse prazo, a equipe precisa abrir um chamado e depender da intervenção manual do suporte.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Web Dev
Publicado
26 de junho de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser