Quelle est la différence pratique entre npm install
et npm update
? Quand devrais-je utiliser quoi?
520
La différence entre l' installation de npm et la gestion de mise à jour de 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 des versions floues ...
npm install
npm update
De plus : install
et update
par défaut, gérer les devDependencies différemment
npm install
va installer / mettre à jour devDependencies sauf si le --production
drapeau est ajouténpm update
va ignorer devDependencies sauf si le --dev
drapeau est ajoutéPourquoi utiliser npm install
du tout?
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 ...
PATH
) en utilisantnpm install -g <name>
--force
~1.3
?npm install --save somePackage
enregistrer le * dans les dépendances?postinstall
exécutés lors de l'installation, mais pas lors de la mise à jour.install
etupdate
travailler différemment sur les URL git, les balises git, etc. spécifiées dans lepackage.json
alors ce serait bien d'ajouter ces cas à l'exemple.1.3.0 -> 1.3.1
similaire à^1.3.0
, où la^
version principale des mises à jour, c'est-à-dire1.3.0 -> 1.4.0
.npm install installe tous les modules répertoriés dans le
package.json
fichier et leurs dépendances.npm update met à jour tous les packages du
node_modules
répertoire 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 sont donc pour quand vous avez déjà le module et que vous souhaitez obtenir la nouvelle version.
la source
npm install
ounpm update
? Ou, en d'autres termes, j'utilise maintenantnpm install
et il semble également faire la mise à jour, y a-t-il une raison pour laquelle je devrais utilisernpm update
?update
sera toujours mis à jour vers la dernière version, quel que soit package.json, toutinstall
en respectant la version donnée dans package.json?update
installe (ou met à jour) la dernière version du module.install
installe la dernière version du module si elle n'est pas présentée sinon conserve la version actuelle.npm update
mettra à jour la dernière version en fonction de votre package.json, nonobstant cela. Si vous avez "express": "3.x" et que vous êtes sur la version 3.1.0, il se mettra à jour vers la dernière balise 3.x. S'il existe une version 4.x, elle n'installera pas la dernière.Dans la plupart des cas, cela installera la dernière version du module publiée sur npm.
ou mieux pour mettre à niveau le module vers la dernière version:
--save
: Le package apparaîtra dans vos dépendances.Plus d'informations: npm-install
la source
npm install express@latest --save --force
était exactement ce que je voulais.De nombreuses distinctions ont déjà été mentionnées. En voici encore un:
Courir
npm install
en haut de votre répertoire source exécutera différents scripts:prepublish
,preinstall
,install
,postinstall
. Selon ce que font ces scripts, unnpm install
peut faire beaucoup plus de travail que d'installer simplement des dépendances.Je viens d'avoir un cas d'utilisation où
prepublish
appelermake
et qui aMakefile
été conçu pour récupérer les dépendances s'ilpackage.json
est mis à jour. Appelernpm install
depuis l'intérieur de laMakefile
aurait conduit à une récursion infinie, alors que l'appelnpm update
fonctionnait très bien, installant toutes les dépendances pour que la construction puisse continuer même si ellemake
était appelée directement.la source
redis
module, et que vous avezother_module
besoin d'une ancienne version deredis
, vousnpm install other_module
garantissez qu'ilother_module
utilisera l'ancienne version. Il peut s'ajouterother_module/node_modules/redis
si nécessaire.npm update
: installer et mettre à jour avec les derniers modules de nœuds qui sont dans package.jsonnpm install
: installe les modules de nœuds définis dans package.json (sans mise à jour)la source
npm update
omettra un grand nombre de dépendances danspackage-lock.json
. Pour avoir tous les packages requis disponibles etpackage-lock.json
pour être correct, je dois toujours exécuternpm install
juste aprèsnpm update
.