Installation
Installer npm et Node
node -v && npm -v # vérifier les versions installées npm install -g npm@latest # mettre à jour npm nvm install --lts # installer Node LTS via nvm nvm use 20 # passer à Node 20
Commandes d'installation
npm installInstaller toutes les dépendances du package.json
npm install pkgAjouter un paquet comme dépendance
npm install -D pkgAjouter un paquet comme devDependency
npm install -g pkgInstaller un paquet globalement
npm install [email protected]Installer une version spécifique
npm ciInstallation propre depuis le fichier de verrouillage (CI/CD)
npm uninstall pkgSupprimer un paquet
Gestion des paquets
Gérer les paquets
npm ls # lister les paquets installés npm ls --depth=0 # niveau supérieur uniquement npm outdated # vérifier les nouvelles versions npm update # mettre à jour dans la plage semver npm audit # vérifier les vulnérabilités
Commandes de gestion
npm lsLister les paquets installés en arbre
npm outdatedAfficher les paquets avec de nouvelles versions
npm update [pkg]Mettre à jour dans la plage semver
npm auditAuditer les dépendances pour vulnérabilités
npm audit fixCorriger automatiquement les dépendances vulnérables
npm pruneSupprimer les paquets superflus
npm dedupeAplatir l'arbre de dépendances
Scripts
Exécuter des scripts
npm run build # exécuter le script "build" npm test # raccourci pour le script "test" npm start # raccourci pour le script "start" npm run lint -- --fix # passer des arguments au script npm run dev & # exécuter en arrière-plan
Cycle de vie des scripts
npm test / npm tExécuter scripts.test
npm startExécuter scripts.start
npm run <name>Exécuter tout script personnalisé
pre<name>S'exécute automatiquement avant
post<name>S'exécute automatiquement après
npm runLister tous les scripts disponibles
package.json
Initialiser et champs
npm init # configuration interactive npm init -y # accepter tous les défauts npm pkg set name="my-app" # définir un champ npm pkg get version # lire un champ
Champs clés
nameNom du paquet (minuscules, sans espaces)
versionVersion courante (semver : majeur.mineur.correctif)
mainPoint d'entrée pour CommonJS (require)
modulePoint d'entrée pour les modules ES (bundlers)
type"module" pour ESM, "commonjs" pour CJS (défaut)
scriptsCommandes nommées (build, test, start, etc.)
dependenciesDépendances de production
devDependenciesDépendances de développement uniquement
enginesPlages de versions Node/npm requises
Versionnage
Commandes de version
npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.1 → 1.1.0 npm version major # 1.1.0 → 2.0.0 npm version 3.2.1 # définir une version explicite npm version prerelease --preid=beta # 1.0.0-beta.0
Plages semver
^1.2.3Compatible : >=1.2.3 <2.0.0 (défaut)
~1.2.3Niveau correctif : >=1.2.3 <1.3.0
1.2.3Version exacte uniquement
>=1.0.0 <2.0.0Plage explicite
*Toute version
1.x / 1.2.xPlages avec joker
latestDernière étiquette de version publiée
Publication
Flux de publication
npm login # s'authentifier au registre npm publish # publier un paquet public npm publish --access public # paquet scopé comme public npm unpublish [email protected] # supprimer une version spécifique npm deprecate pkg@"<2" "Use v2+" # déprécier les anciennes versions
Référence de publication
npm loginS'authentifier avec le registre npm
npm publishPublier le paquet dans le registre
npm packCréer une archive sans publier
npm unpublishSupprimer une version publiée (dans les 72h)
npm deprecateMarquer des versions comme dépréciées
.npmignoreFichiers à exclure du paquet publié
files (package.json)Liste blanche de fichiers à inclure
Espaces de travail
Commandes d'espace de travail
npm init -w packages/core # créer un espace de travail npm install -w packages/core lodash # installer dans l'espace npm run build --workspaces # exécuter dans tous les espaces npm run test -w packages/api # exécuter dans un espace spécifique npm ls --workspaces # lister les dépendances des espaces
Configuration des espaces de travail
workspaces (package.json)Tableau de globs d'espaces : ["packages/*"]
-w / --workspaceCibler un espace de travail spécifique
--workspacesExécuter la commande sur tous les espaces
--include-workspace-rootInclure le paquet racine dans les opérations
npm install (racine)Installe toutes les dépendances des espaces
HoistingDépendances partagées hissées vers la racine node_modules
npx
Exécuter avec npx
npx create-react-app my-app # exécuter sans installer npx tsc --init # exécuter un binaire local ou distant npx -p typescript tsc file.ts # spécifier le paquet explicitement npx --yes create-next-app # ignorer la confirmation d'installation npx node@18 -e "console.log('hi')" # exécuter avec un Node spécifique
Options npx
npx cmdExécuter cmd depuis node_modules/.bin ou à distance
npx -p pkg cmdInstaller pkg, puis exécuter cmd
npx --yes cmdConfirmer automatiquement l'installation
npx --no cmdRefuser l'installation — échouer si non local
npx -c 'cmd'Exécuter une commande shell avec le PATH npx
npx node@verExécuter une version spécifique de Node.js
Configuration
Commandes de configuration
npm config list # afficher la configuration actuelle npm config set registry https://r.npmjs.com/ npm config set init-author-name "Nom" npm config get prefix # chemin d'installation global npm config delete key # supprimer une valeur de config
Référence de configuration
.npmrc (projet)Fichier de config par projet
~/.npmrcFichier de config par utilisateur
registryURL du registre de paquets
save-exacttrue pour épingler les versions exactes à l'installation
engine-stricttrue pour appliquer le champ engines
fundfalse pour supprimer les messages de financement
auditfalse pour ignorer l'audit à l'installation
Motifs courants
Commandes en une ligne
npm ls --depth=0 --json | jq '.dependencies | keys[]' npm outdated --long # afficher le type et la page d'accueil npm cache clean --force # vider le cache npm npm explain pkg # pourquoi pkg est installé ? npm exec -- envinfo --system # infos système pour rapports de bugs
Recettes
Fichier de verrouillage uniquementnpm ci — installation propre depuis package-lock.json
Vérifier les licencesnpx license-checker --summary
Trouver les dépendances inutiliséesnpx depcheck
Taille du bundlenpx bundlephobia-cli pkg — vérifier la taille
Tout mettre à journpx npm-check-updates -u && npm install
Registre localnpx verdaccio — exécuter un registre privé