Skip to main content

npm alcança a marca de 1 milhão de pacotes! O que podemos aprender?

NPM blog

4 de junho de 2019

0 minutos de leitura
Wombat ao lado de um prato com milho e presentes de aniversário coloridos embrulhados, ao ar livre

4 de junho é uma data histórica. Além de ser o aniversário do nosso querido Liran Tal (Mazal Tov, Liran!), foi também o dia em que o milionésimo pacote foi indexado no registro do npm. O npm é um gerenciador de pacotes JavaScript. Seu componente central é o registro público, que hospeda pacotes JavaScript acessados pelo cliente npm para criar aplicações JavaScript.

Captura de tela da página inicial do npm, com busca de pacotes, bibliotecas populares, categorias para descobrir conteúdo e estatísticas que destacam 1.000.000 de pacotes.

Se você usa o npm e quer saber como utilizá-lo com mais segurança, confira nosso guia de segurança do npm, com dez práticas recomendadas para usar o npm com segurança.

Breve história do npm, incluindo incidentes de segurança

  • Janeiro de 2010: o npm foi criado por Isaac Z. Schlueter e escrito em JavaScript.

  • Março de 2016: o popular pacote JavaScript left-pad foi removido do repositório npm devido a uma disputa pelo nome. Após causar grande transtorno na comunidade JavaScript, o npm tornou mais rigorosa sua política de remoção de pacotes.

  • Julho de 2018: uma versão maliciosa do pacote eslint-scope foi lançada e expôs as credenciais npm dos usuários ao invasor.

  • Novembro de 2018: o pacote malicioso flatmap-stream foi publicado no npm e adicionado como dependência do popular pacote event-stream. O pacote tinha como alvo a carteira de bitcoins Copay.

  • 4 de junho de 2019: o npm indexa seu milionésimo pacote.

Os dez pacotes mais populares do npm

O site do npm lista os dez pacotes mais populares. Veja abaixo a lista, com informações sobre vulnerabilidades. Curiosamente, o pacote request foi alvo de 17 tentativas de typosquatting.

Pacote

Vulnerabilidades

3 vulnerabilidades (1 de alta gravidade)

1 vulnerabilidade (17 tentativas de typosquatting)

0 vulnerabilidades (1 tentativa de typosquatting)

2 vulnerabilidades (1 de alta gravidade)

1 vulnerabilidade

0 vulnerabilidades

3 vulnerabilidades

1 vulnerabilidade

0 vulnerabilidades

0 vulnerabilidades

Se considerarmos popularidade como o número total de downloads, podemos ver quais bibliotecas são muito usadas como dependências diretas e indiretas:

Pacote

Downloads

debug

>40 milhões de downloads por semana

kind-of

>34 milhões de downloads por semana

supports-color

>34 milhões de downloads por semana

readable-stream

>31 milhões de downloads por semana

source-map

>30 milhões de downloads por semana

yargs

>27 milhões de downloads por semana

camelcase

>26 milhões de downloads por semana

minimist

>25 milhões de downloads por semana

strip-ansi

>25 milhões de downloads por semana

chalk

>25 milhões de downloads por semana

Entre os 10 pacotes acima, apenas debug foi identificado como contendo uma vulnerabilidade de segurança.

O npm em números

A escala impressionante da popularidade e do crescimento do npm fica clara neste gráfico, que mostra o número de pacotes indexados nos últimos dois anos. Em pouco mais de dois anos, desde janeiro de 2017, a plataforma cresceu 250%.

Gráfico de linhas mostrando o total de pacotes indexados no npm, que aumentou de 400.000 em janeiro de 2017 para 1.000.000 em junho de 2019.

O crescimento do uso do npm também fica evidente mês a mês, como mostra o número de pacotes baixados a cada mês em 2019.

Gráfico de linhas que mostra o aumento dos downloads de pacotes npm, de 37 bilhões em janeiro para 50 bilhões em maio de 2019, com uma pequena queda em abril.

Confira mais algumas estatísticas do npm:

  • 1 milhão de pacotes indexados (além dos que foram indexados desde a publicação deste post!)

  • 10,9 bilhões de downloads na semana passada

  • 46,9 bilhões de downloads no mês passado

  • O pacote mais popular é debug, com mais de 40 milhões de downloads por semana

  • O 1000º pacote mais baixado é merge-stream, com cerca de 3,5 milhões de downloads por semana

  • 250 milpacotes adicionados ao npm em 2018

  • 110 milpacotes adicionados ao npm em 2019 até agora

  • 144 mil downloads semanais do pacote npm da CLI do Snyk!

  • 41 pacotes pertencem ao Snyk, oba!

O usuário do GitHub dominykas e um colega da NearForm compartilharam algumas estatísticas em uma issue do GitHub, como parte de um trabalho do grupo de trabalho de manutenção de pacotes da Node.js Foundation. Os dados mostram como a manutenção geral dos pacotes varia bastante entre os autores.

Percentil

Último commit

Última publicação

10%

há 4 dias

há 11 dias

20%

há 5 dias

há 37 dias

30%

há 19 dias

há 88 dias

40%

há 57 dias

há 157 dias

50%

há 119 dias

há 246 dias

60%

há 194 dias

há 369 dias

70%

há 328 dias

há 559 dias

80%

há 563 dias

há 777 dias

90%

há 887 dias

há 1.098 dias

95%

há 1.194 dias

há 1.372 dias

100%

há 2.201 dias

há 2.792 dias

Resumo

Parabenizamos o npm por executar e manter o maior repositório de linguagens de código aberto, e também os excelentes mantenedores e desenvolvedores da comunidade, que impulsionam esse ecossistema e contribuíram para essa grande conquista. É muito importante garantir que, ao usar pacotes de código aberto, você escolha versões sem vulnerabilidades conhecidas. É fácil testar seus aplicativos gratuitamente usando o Snyk Vulnerability Database, referência no setor. Experimente agora e confira os resultados da análise na hora.

Teste hoje mesmo seu aplicativo JavaScript com uma conta gratuita do Snyk.

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.