npm, yarn, pnpm : commandes essentielles
Installer, ajouter une dépendance, exécuter un script : le même geste dans les trois gestionnaires de paquets JavaScript les plus courants.
Installer des dépendances
| npm | yarn | pnpm | Effet |
|---|---|---|---|
npm install |
yarn |
pnpm install |
Installer tout package.json |
npm install pkg |
yarn add pkg |
pnpm add pkg |
Ajouter une dépendance |
npm install -D pkg |
yarn add -D pkg |
pnpm add -D pkg |
Ajouter une dépendance de dev |
npm install -g pkg |
yarn global add pkg |
pnpm add -g pkg |
Installer globalement |
npm uninstall pkg |
yarn remove pkg |
pnpm remove pkg |
Retirer une dépendance |
Scripts et exécution
npm run dev # exécuter le script "dev" de package.json npm start # raccourci pour le script "start" npx eslint . # exécuter un binaire sans l'installer globalement
Versions et audit
npm outdated # dépendances qui ont une version plus récente npm update # mettre à jour selon les contraintes de semver npm audit # vulnérabilités connues npm audit fix # corriger automatiquement ce qui est sûr npm ci # installation stricte à partir du lockfile (CI/prod)
npm ci (au lieu de npm install) est fait pour la CI et la prod : il supprime node_modules et réinstalle strictement ce que dit le lockfile, sans jamais le modifier — plus rapide et 100 % reproductible.
Lockfiles
| Outil | Fichier |
|---|---|
| npm | package-lock.json |
| yarn | yarn.lock |
| pnpm | pnpm-lock.yaml |
Ne mélangez jamais deux gestionnaires sur le même projet : deux lockfiles à jour = incohérences garanties.
package.json : champs essentiels
{ "name": "mon-projet", "version": "1.2.0", "scripts": { "dev": "vite", "build": "vite build", "test": "vitest" }, "dependencies": { "vue": "^3.4.0" }, "devDependencies": { "vite": "^5.0.0" } }
dependencies = nécessaire en production ; devDependencies = uniquement pour développer/construire (tests, bundler…), jamais expédié en prod.
Merci pour votre retour !