Quelle est la différence pratique entre npm install
et npm update
? Quand devrais-je utiliser lequel?
Différence entre npm install et npm update traitement 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 que un module déjà installé avec un versioning flou ...
npm install
npm update
En outre : install
et update
par défaut, gérer devDependencies différemment.
npm install
va installer/mettre à jour devDependencies sauf si le drapeau --production
est ajouténpm update
sera ignorer devDependencies sauf si le drapeau --dev
est ajouté Pourquoi utiliser npm install
du tout?
Parce que npm install
en fait plus lorsque vous cherchez à gérer vos dépendances dans package.json
. Comme vous pouvez le voir dans npm install vous pouvez ...
PATH
du shell) à l'aide de npm install -g <name>
--force
npm install installe tous les modules listés dans le fichier package.json
et leurs dépendances.
npm update 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 met à jour le module express (à partir de [email protected], il ne met pas à jour ses dépendances).
Les mises à jour s'appliquent donc lorsque vous avez déjà le module et souhaitez obtenir la nouvelle version.
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 utilisée:
npm install express@latest --save --force
--save
: Le paquet apparaîtra dans vos dépendances.
Plus d'infos: npm-install
De nombreuses distinctions ont déjà été mentionnées. En voici un de plus:
Si vous exécutez npm install
en haut de votre répertoire source, différents scripts seront exécutés: prepublish
, preinstall
, install
, postinstall
. En fonction de l'utilisation de 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
aurait été conçu pour extraire des dépendances si le package.json
était mis à jour. L'appel de npm install
à l'intérieur de la Makefile
aurait conduit à une récursion infinie, alors que l'appel de npm update
fonctionnait correctement, l'installation de toutes les dépendances de sorte que la construction puisse continuer même si make
était appelé directement.
npm update
: installer et mettre à jour avec les derniers modules de noeuds contenus dans package.json
npm install
: installe les modules de noeud définis dans package.json (sans mise à jour)