Développeur FullStack & Devops

Notes et mémos techniques

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 ou 1.0.x ou ~1.0.4
  • Minor releases: 1 ou 1.x ou ^1.0.4
  • Major releases: * ou x

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

npm outdated

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:

javascript
nodejs
npm
node_modules
package-manager
programmation
rédigé le 01/11/18 par Behrouze
A proposCheat SheetsOutilsVidéos