Trois gestionnaires, un seul à choisir par projet. Voici le comparatif sur les critères qui comptent vraiment.
Le tableau de décision
| Critère | npm | pnpm | bun |
|---|---|---|---|
| Vitesse d'install | lent | rapide | très rapide |
| Espace disque | gros | minuscule (store + hardlinks) | moyen |
| Résolution stricte | non | oui | oui |
| Workspaces / monorepo | basique | excellent | bon |
| Ecosystème CI/CD | universel | mature | en croissance |
| Compatibilité de paquets | 100% | 99% | 95% |
| Maturité | très mature | mature | jeune (depuis 2022) |
| Au-delà du package manager | rien | rien | runtime + bundler + test |
Quand choisir pnpm
- Projet sérieux à long terme où la prédictibilité prime sur la nouveauté.
- Monorepo avec plusieurs paquets dans un même repo (workspaces). pnpm a la meilleure implémentation aujourd'hui.
- Espace disque limité ou plusieurs projets sur la même machine (laptop dev, CI réutilisée). Le store global économise littéralement des gigaoctets.
- Compatibilité 100% Node requise par certaines dépendances natives ou outils tiers exigeants.
Quand choisir bun
- Tu démarres un projet from scratch sans contrainte de compatibilité avec un outil existant.
- Tu veux un seul binaire pour package manager, bundler, test runner, et runtime. Moins d'outils dans ta toolchain, moins de configuration.
- Tu apprécies les performances : bun installe vraiment beaucoup plus vite que les deux autres sur les benchmarks publics, et le runtime exécute généralement plus vite que Node.
- Tu acceptes un peu de risque : bun est en pleine évolution, certains paquets natifs ou outils très spécifiques peuvent encore tomber.
Quand garder npm
Pas pour un projet neuf. Mais garde-le si :
- Projet existant qui marche avec npm et où la migration n'apporte pas de gain mesurable.
- CI/CD très ancienne ou contrainte qui ne supporte rien d'autre. Rare aujourd'hui.
- Onboarding d'équipe où la majorité connaît npm et personne n'a la bande passante pour apprendre autre chose.
Notre recommandation
Pour un projet personnel ou un projet d'équipe en 2026 :
- pnpm par défaut : maturité, monorepos, et économie disque. C'est ce qu'on utilise sur Blokby et les outils internes.
- bun si tu veux la simplicité : un seul outil pour tout, des perfs nettement meilleures, au prix d'une compatibilité un peu moins universelle.
- npm seulement pour la rétrocompatibilité : pas de migration urgente sur un projet qui marche, mais pas le choix par défaut pour démarrer.
Pour aller plus loin
- Documentation pnpm officielle : pnpm.io
- Documentation bun officielle : bun.sh
- Documentation npm officielle : docs.npmjs.com