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

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

397
demandé sur piperchester 2012-09-18 18:07:54

4 réponses

La différence entre npm install et mnp de mise à jour gestion de versions de package spécifié 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 que un module déjà installé avec une version floue ...

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

En Outre: install et update par défaut poignée devDependencies différemment

  • npm install va installer/mettre à jour devDependencies à moins que --production drapeau est Ajouté
  • npm update ignorera devDependencies à moins que --dev drapeau est Ajouté

Pourquoi utiliser npm install, à tous?

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

  • installer manuellement nœud-modules
  • définissez-les comme global (qui les met dans le shell PATH) en utilisant npm install -g <name>
  • installer certaines versions décrites par les balises git
  • installer à partir d'une url git
  • forcer une réinstallation avec --force
519
répondu xanderiel 2018-03-28 17:28:36

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

Npm update met à jour tous les paquets du répertoire 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 (en commençant par npm@2.x, il ne met pas à jour ses dépendances).

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

64
répondu saeed 2018-06-11 16:32:11

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

npm install express --save

Ou mieux pour mettre à niveau le module vers la dernière version Utiliser:

npm install express@latest --save --force

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

Plus d'infos: npm-installer

41
répondu jmav 2014-01-15 22:46:54

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

L'Exécution de npm install en haut de votre répertoire source exécute plusieurs scripts: prepublish, preinstall, install, postinstall. Selon ce que font ces scripts, un npm install peut faire beaucoup plus de travail que simplement installer des dépendances.

Je viens d'avoir un cas d'utilisation où prepublish appellerait make et le Makefile était conçu pour récupérer les dépendances si le package.json était mis à jour. Appeler npm install depuis le Makefile aurait conduit à un la récursivité infinie, tout en appelant npm update a très bien fonctionné, en installant toutes les dépendances afin que la construction puisse continuer même si make était appelé directement.

7
répondu MvG 2015-09-09 16:33:24