Node.js : npm, commandes essentielles
npm est le gestionnaire de paquets fourni avec Node.js. Les exemples utilisent des noms génériques.
Créer un projet
Section intitulée « Créer un projet »mkdir monprojet && cd monprojetnpm init -y # crée package.json avec les valeurs par défautnpm pkg set type=module # utilise les modules ESLe fichier package.json
Section intitulée « Le fichier package.json »{ "name": "monprojet", "version": "1.0.0", "private": true, "type": "module", "scripts": { "start": "node src/serveur.js", "dev": "node --watch src/serveur.js", "test": "node --test" }, "dependencies": { "express": "^5.0.0" }, "devDependencies": { "eslint": "^9.0.0" }, "engines": { "node": ">=22" }}| Champ | Rôle |
|---|---|
name, version |
Identité du projet |
private |
true : empêche une publication accidentelle sur npm |
type |
module (ES modules) ou commonjs |
scripts |
Commandes lancées avec npm run |
dependencies |
Paquets nécessaires à l’exécution |
devDependencies |
Paquets de développement (tests, lint, compilation) |
engines |
Versions de Node.js compatibles |
Installer et supprimer des paquets
Section intitulée « Installer et supprimer des paquets »npm install # installe tout ce que package.json déclarenpm install express # ajoute une dépendancenpm install -D eslint # ajoute une dépendance de développementnpm install express@5.0.0 # version précisenpm install -g typescript # installation globale (outil en ligne de commande)npm uninstall express # supprimeReproductible : npm ci
Section intitulée « Reproductible : npm ci »npm ci # installation exacte depuis package-lock.jsonnpm ci --omit=dev # sans les dépendances de développement (production)npm ci supprime node_modules puis installe exactement les versions de package-lock.json : à utiliser en intégration continue et en production. Le fichier package-lock.json doit être versionné.
npm run dev # exécute le script « dev »npm start # raccourci pour « start »npm test # raccourci pour « test »npm run build -- --verbose # transmet des options après --npm run # liste les scripts disponiblesnpx : exécuter un outil sans l’installer
Section intitulée « npx : exécuter un outil sans l’installer »npx eslint . # utilise la version du projet, ou la téléchargenpx --yes serve ./public # télécharge et exécute sans confirmationVersions et mises à jour
Section intitulée « Versions et mises à jour »Dans package.json, la plage de versions suit le semver (majeur.mineur.correctif) :
| Écriture | Autorise |
|---|---|
^1.4.2 |
1.4.2 jusqu’à 1.x.x (pas de changement majeur) |
~1.4.2 |
1.4.2 jusqu’à 1.4.x |
1.4.2 |
exactement cette version |
npm outdated # paquets pour lesquels une version plus récente existenpm update # met à jour dans les plages autoriséesnpm install express@latest # passe à la dernière version (y compris majeure)npm ls --depth=0 # paquets installés (niveau 1)npm ls express # où un paquet est utilisénpm view express versions # versions disponiblesnpm view express version # dernière versionSécurité
Section intitulée « Sécurité »npm audit # vulnérabilités connues dans les dépendancesnpm audit fix # corrige sans changement majeurnpm audit --omit=dev # uniquement les dépendances de productionnpm ci --ignore-scripts # n'exécute pas les scripts d'installation des paquetsConfiguration
Section intitulée « Configuration »npm config list # configuration activenpm config get prefix # dossier des installations globalesnpm config set prefix ~/.npm-globalnpm config set fund false # supprime les messages de financementUn fichier .npmrc à la racine du projet applique des réglages au projet :
save-exact=true # écrit les versions exactes dans package.jsonengine-strict=true # refuse d'installer avec une version de Node.js incompatibleCache et dépannage
Section intitulée « Cache et dépannage »npm cache verify # vérifie le cachenpm cache clean --force # vide le cacherm -rf node_modules package-lock.json && npm install # réinstallation complète (dernier recours)| Symptôme | Piste |
|---|---|
EACCES à l’installation globale |
Configurer un dossier global personnel (voir Installation) |
ERESOLVE (conflit de dépendances) |
Lire le message : mettre à jour un des paquets ; --legacy-peer-deps en dernier recours |
| Modifications ignorées | Supprimer node_modules et relancer npm ci |
engine incompatible |
Utiliser la version de Node.js demandée (voir nvm) |
Publier un paquet (aperçu)
Section intitulée « Publier un paquet (aperçu) »npm loginnpm pack --dry-run # liste les fichiers qui seraient publiésnpm publish --access publicPour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : docs.npmjs.com
- Alternative : Gestionnaires de paquets : pnpm et Yarn