C'est la fin de l'année et ce fut une bonne année pour pnpm, alors voyons comment elle s'est déroulée.
Utilisation
Statistiques de téléchargement
Mon objectif cette année était de battre Bower en nombre de téléchargements. Nous avons pu atteindre cet objectif en novembre :
pnpm a été téléchargé environ 3 fois plus en 2021 qu'en 2020 :
Ces statistiques ne mesurent même pas toutes les différentes façons dont pnpm peut être installé ! Celles-ci ne mesurent que les téléchargements du package pnpm depuis npm. Cette année, nous avons également ajouté les versions binaires compilées de pnpm, qui sont livrées différemment.
Visites des documents
Nous recueillons des statistiques non personnalisées sur nos documents à l'aide de Google Analytics. En 2021, nous avions parfois plus de 2 000 visiteurs uniques par semaine.
La plupart de nos utilisateurs sont originaires des États-Unis et de la Chine.
Étoiles GitHub
Notre dépôt principal sur GitHub a reçu plus de 5 000 étoiles cette année.
Nouveaux utilisateurs
Our biggest new user this year is Bytedance (the company behind TikTok).
De plus, de nombreux projets importants open-source ont commencé à utiliser pnpm. Certains sont passés à pnpm en raison de son excellent support des monorepos :
Certains ont changé parce qu'ils apprécient l'efficacité, la rapidité et la beauté de pnpm :
Fonctionnalités marquantes
Nouveau format du fichier lockfile (depuis v6.0.0)
L'un des premiers et des plus importants changements de cette année a été le nouveau format de pnpm-lock.yaml
. Il s'agissait d'un changement de rupture, nous avons donc dû publier la v6. Mais ce fut un succès. L'ancien fichier lockfile provoquait fréquemment des conflits avec Git. Depuis l'introduction du nouveau format, nous n'avons reçu aucune plainte concernant des conflits Git.
Gestion des versions de Node.js (depuis v6.12.0)
Nous avons livré une nouvelle commande (pnpm env
) qui permet de gérer les versions de Node.js. Vous pouvez donc utiliser pnpm à la place des gestionnaires de version de Node.js comme nvm ou Volta.
De plus, pnpm est livré sous la forme d'un exécutable autonome, de sorte que vous puissiez l'exécuter même sans que Node.js soit préinstallé sur le système.
Injection de dépendances locales (depuis v6.20.0)
Vous pouvez « injecter » une dépendance locale. Par défaut, les dépendances locales sont liées symboliquement à node_modules
mais avec cette nouvelle fonctionnalité, vous pouvez demander à pnpm de lier à la place en dur les fichiers du package.
Amélioration du signalement des problèmes de dépendance entre pairs (depuis v6.24.0)
Les problèmes de dépendance des pairs (« peer dependency ») étaient auparavant imprimés en texte simple et il était difficile de les comprendre. Elles sont maintenant toutes regroupées et affichées dans une belle structure hiérarchique.
La compétition
Yarn
Yarn a ajouté un gestionnaire de liens pnpm dans la v3.1. Ainsi, Yarn peut créer une structure de répertoire node-modules similaire à celle créée par pnpm.
De plus, l'équipe de Yarn prévoit d'implémenter un stockage adressable par le contenu pour être plus efficace en termes d'espace disque.
npm
L'équipe npm a décidé d'adopter également la structure de répertoire node-modules avec liens symboliques utilisée par pnpm (RFC associée).
Autres
Bun écrit en Zig et Volt écrit en Rust prétendent tous deux être plus rapides que npm/Yarn/pnpm. Je n'ai pas encore évalué ces nouveaux gestionnaires de packages.
Plans futurs
Plus vite, mieux, le meilleur.