npm
npm
Node Package Manager est un gestionnaire de package NodeJs qui permet aux développeurs Javascript (front ou back) d’utiliser des modules NodeJs, sans avoir à réinventer la roue à chaque fois.
Une alternative très utilisée est yarn qui est souvent plus rapide et gère mieux le cache local que npm.
A savoir que npm
utilise le semantic versioning, que l’on retrouve dans le package.json
sous forme de numéros de versions précédés de ^ ou de ~ par ex.
- Patch releases:
1.0
ou1.0.x
ou~1.0.4
- Minor releases:
1
ou1.x
ou^1.0.4
- Major releases:
*
oux
Installation et usage basique
Pour pouvoir utiliser npm (ou yarn) il faut tout d’abord installer NodeJs qui embarque npm, mais il est conseillé d'utiliser nvm pour géré facilement différente versions de NodeJs sur un environnement de développement.
npm -v # version de npm
npm i [-g] xxx # installer un package globalement (ex CLI)
npm i xxx # installe le package xxx et mets à jour le package.json
npm i xxx@version # installe la version spécifiée
npm i --save-dev xxx
npm run nom_script_npm
npm start
npm uninstall xxx
npm ls xxx # liste toutes les versions installées & les dépendances du package xxx
npm view xxx
npm help [command] # description de la commande et raccourcis
npm i npm -g # pour mettre à jour npm
npm ping
npm doctor
Intégration Continue (ou CI)
Pour la ci (intégration continue) il est possible d’utiliser npm ci
plutôt que npm i
(voici les différences).
L’interet d’utiliser npm ci
est qu’il va strictement respecter les numéros de versions présents dans package-lock.json
(qui doit exister) et supprime systématiquement le dossier node_modules
pour réinstaller toutes les dépendances.
Mises à jour de packages
Les mises à jour des packages s’effectuent par la commande npm update
, mais il existe des commandes npm complémentaires :
npm update xxx # mets à jour le package selon les contraintes semver spécifiés dans le package.json
npm update [--dev] # Attention: MAJ l'ensemble des packages desuets
npm update -g xxx
npm outdated # liste les packages désuets (à mettre à jour)
npm outdated -g --depth=0 # idem pour les packages installés globalements
npm rm xxx # supprime le package du projet
Mise à jour de tous les packages 😅
Depuis npm
version 5.0.0, npm update
met à jour le fichier package.json
avec les nouvelles versions niveau mineur ou patch.
Il existe un outil npm-check-updates
, qui nous permet de mettre à jour (dernière version) toutes les dépendances, même en version Majeur de notre package.json
.
npm i -g npm-check-updates
npm-check-updates -u # le -u pour Update, va mettre a jour le package.json
npm i # 🧨💥🤯
voir doc Node.js
Vidéos
npm inc mets à disposition un tas de vidéos très clair à propos des commandes et concepts autour de npm ainsi que des conférences: