npm install vs. update – quelle est la différence?

Quelle est la différence pratique entre l’ npm install npm update et la npm update ? Quand devrais-je utiliser lequel?

La différence entre l’ installation npm et la gestion de la mise à jour npm des versions de package spécifiées dans package.json :

 { "name": "my-project", "version": "1.0", // install update "dependencies": { // ------------------ "already-installed-versionless-module": "*", // ignores "1.0" -> "1.1" "already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2" "already-installed-versioned-module": "3.4.1" // ignores ignores "not-yet-installed-versionless-module": "*", // installs installs "not-yet-installed-semver-module": "^4.2.1" // installs installs "not-yet-installed-versioned-module": "2.7.8" // installs installs } } 

Résumé : La seule grande différence est qu’un module déjà installé avec un contrôle de version flou

  • est ignoré par npm install
  • mis à jour par la npm update

De plus : install et update à update par défaut les devDependencies différemment

  • npm install va installer / mettre à jour devDependencies à moins que l’ --production flag ne soit ajoutée
  • npm update ignore les devDependencies à moins que l’ --dev soit ajoutée

Pourquoi utiliser npm install ?

Parce que npm install fait plus lorsque vous regardez en plus de gérer vos dépendances dans package.json . Comme vous pouvez le voir dans l’ installation de npm, vous pouvez …

  • installer manuellement les nœuds-modules
  • les définir comme globaux (ce qui les place dans le PATH du shell) en utilisant npm install -g
  • installer certaines versions décrites par les balises git
  • installer à partir d’une URL git
  • forcer une réinstallation avec --force

npm install installe tous les modules répertoriés dans le fichier package.json et leurs dépendances.

La mise à jour npm met à jour tous les packages du répertoire node_modules et leurs dépendances.

npm install express installe uniquement le module express et ses dépendances.

npm update express updates module express (commençant par [email protected], il ne met pas à jour ses dépendances).

Donc, les mises à jour sont pour quand vous avez déjà le module et souhaitez obtenir la nouvelle version.

Dans la plupart des cas, la dernière version du module publiée sur npm sera installée.

 npm install express --save 

ou mieux pour mettre à niveau le module vers la dernière version utilisée:

 npm install express@latest --save --force 

--save : le package apparaîtra dans vos dépendances.

Plus d’info: npm-install

De nombreuses distinctions ont déjà été mentionnées. En voici un de plus:

L’exécution de npm install en haut de votre répertoire source exécutera divers scripts: prepublish , preinstallinstall , install , postinstallpostinstall . Selon ce que font ces scripts, une npm install peut faire beaucoup plus de travail que l’installation de dépendances.

Je viens d’avoir un cas d’utilisation où prepublish appellerait make et le Makefile été conçu pour récupérer des dépendances si le package.json été mis à jour. L’appel de npm install depuis le Makefile aurait conduit à une récursion infinie, alors que l’appel de la npm update a bien fonctionné, en installant toutes les dépendances pour que la construction puisse continuer même si make était appelée directement.