npm alcança a marca de 1 milhão de pacotes! O que podemos aprender?
4 de junho de 2019
0 minutos de leitura
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.

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%.

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.

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 semanaO 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.
