npm franchit le cap du millionième package ! Que peut-on en apprendre ?
4 juin 2019
0 minutes de lecture
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.

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

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.

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.
