¡npm alcanza el millón de paquetes! ¿Qué podemos aprender?
4 de junio de 2019
0 minutos de lectura
El 4 de junio es una fecha histórica. No solo es el cumpleaños de nuestro querido Liran Tal (¡Mazal Tov, Liran!), sino que también es la fecha en que se indexó el paquete número un millón en el registro de npm. npm es un administrador de paquetes de JavaScript. El componente central de npm es su registro público, que aloja paquetes de JavaScript a los que puede acceder el cliente de npm para crear aplicaciones de JavaScript.

Si usas npm y te interesa saber cómo hacerlo de forma más segura, no te pierdas nuestra guía de seguridad de npm, que reúne diez prácticas recomendadas para usar npm de forma segura.
Breve historia de npm, incluidos los incidentes de seguridad
Enero de 2010: Isaac Z. Schlueter creó npm, escrito en JavaScript.
Marzo de 2016: el popular paquete de JavaScript left-pad se retiró del repositorio de npm debido a una disputa por el nombre. Tras causar una gran interrupción en el mundo de JavaScript, se endureció la política para retirar paquetes.
Julio de 2018: se publicó una versión maliciosa del paquete eslint-scope que expuso las credenciales de npm de los usuarios al atacante.
Noviembre de 2018: se publicó en npm el paquete malicioso flatmap-stream, que se agregó como dependencia al popular paquete event-stream. El paquete tenía como objetivo la billetera de bitcoin Copay.
4 de junio de 2019: npm indexa su paquete número un millón.
Los diez paquetes principales de npm
El sitio web de npm muestra sus diez paquetes más populares. A continuación, se enumeran junto con información sobre vulnerabilidades. Es interesante que el paquete request haya sido objeto de 17 intentos de typosquatting.
Paquete | Vulnerabilidades |
|---|---|
3 vulnerabilidades (1 de gravedad alta) | |
1 vulnerabilidad (17 intentos de typosquatting) | |
0 vulnerabilidades (1 intento de typosquatting) | |
2 vulnerabilidades (1 de gravedad alta) | |
1 vulnerabilidad | |
0 vulnerabilidades | |
3 vulnerabilidades | |
1 vulnerabilidad | |
0 vulnerabilidades | |
0 vulnerabilidades |
Si consideramos la popularidad como el número total de descargas, podemos ver qué bibliotecas se usan mucho, tanto como dependencias directas como indirectas:
Paquete | Descargas |
|---|---|
debug | >40 millones de descargas semanales |
kind-of | >34 millones de descargas semanales |
supports-color | >34 millones de descargas semanales |
readable-stream | >31 millones de descargas semanales |
source-map | >30 millones de descargas semanales |
yargs | >27 millones de descargas semanales |
camelcase | >26 millones de descargas semanales |
minimist | >25 millones de descargas semanales |
strip-ansi | >25 millones de descargas semanales |
chalk | >25 millones de descargas semanales |
De los 10 paquetes anteriores, solo se descubrió que debug contenía una vulnerabilidad de seguridad.
npm en cifras
La escala de la popularidad y el crecimiento de npm es impresionante, como podemos ver en este gráfico, que muestra el número de paquetes indexados en los últimos dos años. De hecho, vemos que la plataforma creció un 250 % en poco más de dos años, desde enero de 2017.

El crecimiento del uso de npm también se nota mes a mes, como podemos ver en el número de paquetes descargados cada mes de 2019.

Aquí tienes más estadísticas de npm:
1 millón de paquetes indexados (¡más los que se han indexado desde que se publicó este artículo!)
10.9 mil millones de descargas la semana pasada
46.9 mil millones de descargas el mes pasado
El paquete principal es
debug, con más de 40 millones de descargas semanalesEl paquete número 1000 en descargas es merge-stream, con aproximadamente 3.5 millones de descargas por semana
250 mil paquetes agregados a npm en 2018
110 mil paquetes agregados a npm en 2019, hasta ahora
144 mil descargas semanales del paquete npm de Snyk CLI
41 paquetes son propiedad de Snyk. ¡Genial!
El usuario de GitHub dominykas y un colega de NearForm compartieron algunas estadísticas en un issue de GitHub, como parte del trabajo del grupo de trabajo de mantenimiento de paquetes de la Node.js Foundation. Sus datos muestran cómo el mantenimiento general de los paquetes varía significativamente entre autores.
Percentil | Último commit | Última publicación |
|---|---|---|
10 % | Hace 4 días | Hace 11 días |
20 % | Hace 5 días | Hace 37 días |
30 % | Hace 19 días | Hace 88 días |
40 % | Hace 57 días | Hace 157 días |
50 % | Hace 119 días | Hace 246 días |
60 % | Hace 194 días | Hace 369 días |
70 % | Hace 328 días | Hace 559 días |
80 % | Hace 563 días | Hace 777 días |
90 % | Hace 887 días | Hace 1098 días |
95 % | Hace 1194 días | Hace 1372 días |
100 % | Hace 2201 días | Hace 2792 días |
Resumen
Queremos felicitar a npm por operar y mantener el repositorio de paquetes de código abierto más grande, y a los excelentes responsables de mantenimiento y desarrolladores de la comunidad que impulsan el ecosistema y contribuyeron a este gran logro. Es fundamental asegurarte de usar versiones de paquetes de código abierto que no contengan vulnerabilidades conocidas. Es muy fácil analizar tus aplicaciones gratis con Snyk Vulnerability Database, líder de la industria. Pruébalo ahora y consulta los resultados del análisis al instante.
Prueba hoy tu aplicación de JavaScript con una cuenta gratuita de Snyk.
Comienza con Capture the Flag
Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.
