Skip to main content

¡npm alcanza el millón de paquetes! ¿Qué podemos aprender?

NPM blog

4 de junio de 2019

0 minutos de lectura
Un wombat junto a un plato de maíz y coloridos regalos de cumpleaños envueltos, al aire libre

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.

Captura de pantalla de la página de inicio de npm que muestra la búsqueda de paquetes, bibliotecas populares, categorías de descubrimiento y estadísticas que destacan 1,000,000 de paquetes.

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.

Gráfico de líneas que muestra el aumento del total de paquetes indexados en npm, de 400 000 en enero de 2017 a 1 000 000 en junio de 2019.

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.

Gráfico de líneas que muestra cómo las descargas de paquetes de npm aumentan de 37 mil millones en enero a 50 mil millones en mayo de 2019, con una leve caída en abril.

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 semanales

  • El 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.