650 votes

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

Quelle est la différence pratique entre npm install y npm update ? Quand dois-je utiliser lequel ?

792voto

xanderiel Points 476

La différence entre npm install y mise à jour de npm la gestion des versions de paquet spécifiées dans paquet.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 que un module déjà installé avec un versionnement flou ...

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

En outre, : install y update gèrent par défaut les devDependencies différemment

  • npm install sera installer/mettre à jour devDependencies sauf si --production le drapeau est ajouté
  • npm update sera ignorer devDependencies sauf si --dev le drapeau est ajouté

Pourquoi utiliser npm install du tout ?

Parce que npm install fait plus si l'on considère qu'en plus de gérer vos dépendances dans package.json . Comme vous pouvez le voir dans npm install vous pouvez ...

  • installer manuellement les modules du nœud
  • les définir comme mondial (ce qui les place dans le répertoire PATH ) en utilisant npm install -g <name>
  • installer certaines versions décrites par des tags git
  • installer à partir d'une url git
  • forcer une réinstallation avec --force

22 votes

Et qu'en est-il ~1.3 ?

6 votes

Et si la version est du type ^5.0.9 ? Et est-il possible de faire npm install --save somePackage enregistrer les * dans les dépendances ?

0 votes

J'ai vu que npm install rapporte des erreurs sur les dépendances manquantes et que npm update ne le fait pas.

110voto

saeed Points 969

npm install installe tous les modules qui sont listés sur package.json et leurs dépendances.

mise à jour de npm met à jour tous les paquets dans le node_modules et leurs dépendances.

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

npm update express met à jour le module express (à partir de npm@2.x, il ne met pas à jour ses dépendances).

Les mises à jour sont donc destinées aux personnes qui possèdent déjà le module et qui souhaitent obtenir la nouvelle version.

7 votes

Si vous ne spécifiez pas une version particulière dans un fichier package.json, npm install obtiendra la dernière version d'un module. C'est donc une sorte de mise à jour.

17 votes

Alors, que dois-je utiliser ? npm install o npm update ? Ou, en d'autres termes, j'utilise maintenant npm install et il semble faire la mise à jour aussi bien, y a-t-il une raison pour laquelle je devrais jamais utiliser npm update ?

0 votes

Si vous ne spécifiez pas de version pour vos modules, vous pouvez continuer à utiliser npm install pour effectuer les mises à jour. Mais généralement, c'est une bonne idée de spécifier une version de module dans votre fichier package.json. Dans ce cas, vous ne pouvez pas utiliser npm install pour effectuer les mises à jour.

51voto

jmav Points 1643

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

npm install express --save

ou mieux pour mettre à jour le module à la dernière version utiliser :

npm install express@latest --save --force

--save : Le paquet apparaîtra dans vos dépendances.

Plus d'informations : npm-install

12 votes

npm install express@latest --save --force était exactement ce que je voulais.

4 votes

Dans la plupart des cas ? D'autres cas ?

16voto

DSK Points 330

npm update : installer et mettre à jour avec les derniers modules de node qui sont dans le package.json

npm install : installer les modules node qui sont définis dans package.json(sans mise à jour)

12voto

MvG Points 22342

De nombreuses distinctions ont déjà été mentionnées. En voici une autre :

Running npm install en haut de votre répertoire source lancera divers scripts : prepublish , preinstall , install , postinstall . En fonction de ce que font ces scripts, une npm install peut faire beaucoup plus de travail que la simple installation des dépendances.

Je viens d'avoir un cas d'utilisation où prepublish appellerait make y el Makefile a été conçu pour récupérer les dépendances si l'option package.json a été mis à jour. Appeler npm install de l'intérieur de la Makefile aurait conduit à une récursion infinie, alors qu'appeler npm update a bien fonctionné, installant toutes les dépendances afin que la construction puisse se poursuivre même si make a été appelé directement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X