Skip to main content

npm franchit le cap du millionième package ! Que peut-on en apprendre ?

NPM blog

4 juin 2019

0 minutes de lecture
Un wombat près d’une assiette de maïs et de cadeaux d’anniversaire colorés emballés, en plein air

Le 4 juin est une date historique. Non seulement c’est l’anniversaire de notre Liran Tal (Mazal Tov, Liran !), mais c’est aussi le jour où le millionième package a été indexé dans le registre npm. npm est un gestionnaire de packages JavaScript. Son principal composant est son registre public, qui héberge des packages JavaScript accessibles depuis le client npm pour créer des applications JavaScript.

Capture d’écran de la page d’accueil de npm présentant la recherche de packages, des bibliothèques populaires, des catégories de découverte et des statistiques mettant en avant 1 000 000 de packages.

Si vous utilisez npm et souhaitez savoir comment le faire de manière plus sécurisée, consultez notre antisèche de sécurité npm, qui présente dix bonnes pratiques pour utiliser npm en toute sécurité.

Bref historique de npm, incidents de sécurité compris

  • Janvier 2010 : npm est créé par Isaac Z. Schlueter et écrit en JavaScript.

  • Mars 2016 : le package JavaScript populaire left-pad est retiré du dépôt npm à la suite d’un litige sur son nom. Après avoir fortement perturbé l’écosystème JavaScript, cet événement conduit au renforcement de la politique de retrait des packages.

  • Juillet 2018 : une version malveillante du package eslint-scope est publiée et expose les identifiants npm des utilisateurs à l’attaquant.

  • Novembre 2018 : le package malveillant flatmap-stream est publié sur npm et ajouté comme dépendance au package populaire event-stream. Il cible Copay, le portefeuille Bitcoin.

  • 4 juin 2019 : npm indexe son millionième package.

Les dix packages les plus populaires sur npm

Le site npm présente ses dix packages les plus populaires. Les voici, avec des informations sur leurs vulnérabilités. À noter : le package request a fait l’objet de 17 tentatives de typosquattage.

Package

Vulnérabilités

3 vulnérabilités (1 critique)

1 vulnérabilité (17 tentatives de typosquattage)

0 vulnérabilité (1 tentative de typosquattage)

2 vulnérabilités (1 critique)

1 vulnérabilité

0 vulnérabilité

3 vulnérabilités

1 vulnérabilité

0 vulnérabilité

0 vulnérabilité

Si l’on mesure la popularité en nombre total de téléchargements, on voit quelles bibliothèques sont largement utilisées comme dépendances directes et indirectes :

Package

Téléchargements

debug

>40 millions de téléchargements par semaine

kind-of

>34 millions de téléchargements par semaine

supports-color

>34 millions de téléchargements par semaine

readable-stream

>31 millions de téléchargements par semaine

source-map

>30 millions de téléchargements par semaine

yargs

>27 millions de téléchargements par semaine

camelcase

>26 millions de téléchargements par semaine

minimist

>25 millions de téléchargements par semaine

strip-ansi

>25 millions de téléchargements par semaine

chalk

>25 millions de téléchargements par semaine

Parmi les 10 packages ci-dessus, seul debug s’est révélé contenir une vulnérabilité de sécurité.

npm en chiffres

L’ampleur de la popularité et de la croissance de npm est impressionnante, comme le montre ce graphique du nombre de packages indexés au cours des deux dernières années. En un peu plus de deux ans, depuis janvier 2017, la plateforme a connu une croissance de 250 %.

Graphique linéaire montrant le nombre total de packages npm indexés, passé de 400 000 en janvier 2017 à 1 000 000 en juin 2019.

La croissance de l’utilisation de npm est également visible mois après mois, comme le montre le nombre de packages téléchargés chaque mois en 2019.

Graphique linéaire montrant la hausse des téléchargements de paquets npm, de 37 milliards en janvier à 50 milliards en mai 2019, avec un léger recul en avril.

Voici quelques autres statistiques sur npm :

  • 1 million de packages indexés (auxquels s’ajoutent ceux indexés depuis la rédaction de cet article !)

  • 10,9 milliards de téléchargements la semaine dernière

  • 46,9 milliards de téléchargements le mois dernier

  • Le package le plus populaire est debug, avec plus de 40 millions de téléchargements par semaine.

  • Le 1 000e package le plus téléchargé est merge-stream, avec environ 3,5 millions de téléchargements par semaine.

  • 250 000packages ajoutés à npm en 2018

  • 110 000packages ajoutés à npm en 2019 à ce jour

  • 144 000 téléchargements par semaine du package npm Snyk CLI !

  • 41 packages appartiennent à Snyk, bravo !

L’utilisateur GitHub dominykas et un collègue de NearForm ont fourni quelques statistiques dans une issue GitHub, dans le cadre de travaux menés par le groupe de travail sur la maintenance des packages de la Node.js Foundation. Leurs données montrent que la maintenance générale des packages varie considérablement selon les auteurs.

Centile

Dernier commit

Dernière publication

10 %

il y a 4 jours

il y a 11 jours

20 %

il y a 5 jours

il y a 37 jours

30 %

il y a 19 jours

il y a 88 jours

40 %

il y a 57 jours

il y a 157 jours

50 %

il y a 119 jours

il y a 246 jours

60 %

il y a 194 jours

il y a 369 jours

70 %

il y a 328 jours

il y a 559 jours

80 %

il y a 563 jours

il y a 777 jours

90 %

il y a 887 jours

il y a 1 098 jours

95 %

il y a 1 194 jours

il y a 1 372 jours

100 %

il y a 2 201 jours

il y a 2 792 jours

En résumé

Nous tenons à féliciter npm pour avoir créé et maintenu le plus grand dépôt de langages open source, ainsi que les formidables mainteneurs et développeurs de la communauté qui font vivre cet écosystème et ont contribué à cette belle réussite. Lorsque vous utilisez des packages open source, il est essentiel de veiller à choisir des versions sans vulnérabilités connues. Vous pouvez facilement tester gratuitement vos applications avec la Snyk Vulnerability Database, une base de données de référence dans le secteur. Essayez dès maintenant et découvrez instantanément les résultats de l’analyse.

Testez votre application JavaScript dès aujourd’hui avec un compte Snyk gratuit.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.