Quelle est la différence pratique entre npm install
et npm update
? Quand devrais-je utiliser quoi?
Quelle est la différence pratique entre npm install
et npm update
? Quand devrais-je utiliser quoi?
Réponses:
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
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
et update
travailler différemment sur les URL git, les balises git, etc. spécifiées dans le package.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-à-dire 1.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 npm@2.x, 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.
npm install
ou npm update
? Ou, en d'autres termes, j'utilise maintenant npm install
et il semble également faire la mise à jour, y a-t-il une raison pour laquelle je devrais utiliser npm update
?
update
sera toujours mis à jour vers la dernière version, quel que soit package.json, tout install
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.
npm install express --save
ou mieux pour mettre à niveau le module vers la dernière version:
npm install express@latest --save --force
--save
: Le package apparaîtra dans vos dépendances.
Plus d'informations: npm-install
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, un npm install
peut faire beaucoup plus de travail que d'installer simplement des dépendances.
Je viens d'avoir un cas d'utilisation où prepublish
appeler make
et qui a Makefile
été conçu pour récupérer les dépendances s'il package.json
est mis à jour. Appeler npm install
depuis l'intérieur de la Makefile
aurait conduit à une récursion infinie, alors que l'appel npm update
fonctionnait très bien, installant toutes les dépendances pour que la construction puisse continuer même si elle make
était appelée directement.
redis
module, et que vous avez other_module
besoin d'une ancienne version de redis
, vous npm install other_module
garantissez qu'il other_module
utilisera l'ancienne version. Il peut s'ajouter other_module/node_modules/redis
si nécessaire.
npm update
: installer et mettre à jour avec les derniers modules de nœuds qui sont dans package.json
npm install
: installe les modules de nœuds définis dans package.json (sans mise à jour)
npm update
omettra un grand nombre de dépendances dans package-lock.json
. Pour avoir tous les packages requis disponibles et package-lock.json
pour être correct, je dois toujours exécuter npm install
juste après npm update
.
~1.3
?