pnpm

Testing 🟡 Mid

Définition

Gestionnaire de paquets rapide et économe en disque (store global + liens), strict par défaut. Depuis pnpm 10 (janvier 2025), les scripts de cycle de vie des dépendances ne s'exécutent plus à l'installation sans autorisation explicite. pnpm 11 exige Node.js 22+ et bloque par défaut les versions publiées depuis moins d'un jour (minimumReleaseAge). pnpm 12, publié le 26 août 2026, est une réécriture en Rust compatible avec les commandes et le lockfile de la v11.

Analogie

Comme une bibliothèque municipale : un seul exemplaire de chaque livre, et chaque habitant y accède par référence plutôt que par copie.

Exemple de code

pnpm install                 # installe (scripts des deps bloqués par défaut)
pnpm approve-builds          # autoriser explicitement un postinstall
pnpm add express             # ajouter une dépendance
pnpm add -D vitest           # dépendance de dev
pnpm dlx create-next-app     # équivalent de npx
pnpm --filter @app/web test  # monorepo
pnpm self-update             # mettre pnpm à jour

Cas d'usage

Pour les monorepos et les projets avec beaucoup de dépendances, offrant rapidité et rigueur.

Anti-pattern

Mélanger npm et pnpm dans un même projet, ou autoriser tous les scripts postinstall d'un coup pour « faire passer » l'installation : c'est justement la protection supply chain introduite en pnpm 10.

Termes liés

#tooling#package#monorepo

Dans l'actu

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre