pnpm vs npm : ce qui change vraiment

pnpm vs npm

pnpm vs npm : stockage, lockfiles, workspaces, correspondance des commandes | We.Inc

Comment pnpm et npm stockent les paquets, verrouillent les versions et gèrent les monorepos, un traducteur de commandes npm vers pnpm avec recherche, et les étapes exactes pour migrer un projet en toute sécurité.

npm copie chaque paquet dans le node_modules de chaque projet et les remonte à plat. pnpm garde un seul store adressable par contenu sur le disque, crée des liens physiques vers ses fichiers et ne place que vos dépendances directes à la racine de node_modules. Cela économise de l'espace disque et empêche le code d'importer des paquets qu'il n'a jamais déclarés. La plupart des commandes se correspondent une à une.

Différences clés

Les deux outils lisent le même package.json et installent depuis le même registre, donc le choix porte sur la structure, la vitesse des réinstallations, l'outillage monorepo et la rigueur. Voici comment chacun stocke les paquets, un traducteur pour les commandes que vous connaissez déjà et les étapes pour passer un projet existant de npm à pnpm.

Questions fréquentes

pnpm est-il plus rapide que npm ?

pnpm réutilise souvent des fichiers déjà présents dans son store, ce qui accélère les réinstallations sur la même machine. La vitesse dépend de l'état du cache, du réseau et de la taille du projet, alors chronométrez les deux sur votre propre projet plutôt que de vous fier à un benchmark publié.

Puis-je utiliser pnpm avec un projet qui a un package-lock.json ?

Oui. Lancez pnpm import pour créer un pnpm-lock.yaml à partir de package-lock.json, npm-shrinkwrap.json ou yarn.lock, puis supprimez l'ancien lockfile et node_modules et lancez pnpm install.

Pourquoi mon application ne trouve-t-elle plus un module après le passage à pnpm ?

Votre code, ou une dépendance, importe un paquet qui ne figure pas dans son propre package.json. La structure à plat de npm masquait cette erreur. Ajoutez le paquet manquant comme dépendance de ce qui l'importe.

pnpm a-t-il besoin de Node.js ?

La documentation d'installation de pnpm décrit pnpm 12 comme un exécutable natif qui n'a pas besoin de Node.js pour fonctionner. Les scripts de votre projet ont bien sûr toujours besoin de Node.js.

Lequel choisir quand on débute ?

npm, car il est fourni avec Node.js et presque tous les tutoriels l'utilisent. Passez à pnpm quand vous gérez un monorepo, de nombreux projets sur une même machine, ou si vous voulez la structure node_modules plus stricte.

Comment chaque outil stocke les paquets

Workspaces et monorepos

Passer un projet de npm à pnpm

Étapes de migration

pnpm import lit le lockfile npm pour que vous gardiez les versions déjà testées. Lancez vos tests avant de commiter.

Chaque dossier correspondant ici devient un paquet du workspace. Placez le fichier à la racine du dépôt.

Dépendre d'un paquet local

workspace:* pointe toujours vers la copie locale de ui au lieu d'une version du registre.

Traducteur de commandes npm vers pnpm

Saisissez une commande npm

npm install -D vite

Équivalent pnpm

Pas de correspondance directe. La plupart des autres commandes npm gardent le même nom sous pnpm.

Commandes npm et leurs équivalents pnpm

Copier

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site