Quelle est la différence pratique entre npm installet npm update? Quand devrais-je utiliser quoi?
Quelle est la différence pratique entre npm installet 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 installnpm updateDe plus : installet updatepar défaut, gérer les devDependencies différemment
npm installva installer / mettre à jour devDependencies sauf si le --productiondrapeau est ajouténpm updateva ignorer devDependencies sauf si le --devdrapeau est ajoutéPourquoi utiliser npm installdu tout?
Parce que npm installfait 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>--forcenpm install --save somePackageenregistrer le * dans les dépendances?
postinstallexécutés lors de l'installation, mais pas lors de la mise à jour.
installet updatetravailler différemment sur les URL git, les balises git, etc. spécifiées dans le package.jsonalors ce serait bien d'ajouter ces cas à l'exemple.
1.3.0 -> 1.3.1similaire à ^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.jsonfichier et leurs dépendances.
npm update met à jour tous les packages du node_modulesré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 installou npm update? Ou, en d'autres termes, j'utilise maintenant npm installet il semble également faire la mise à jour, y a-t-il une raison pour laquelle je devrais utiliser npm update?
updatesera toujours mis à jour vers la dernière version, quel que soit package.json, tout installen respectant la version donnée dans package.json?
updateinstalle (ou met à jour) la dernière version du module. installinstalle la dernière version du module si elle n'est pas présentée sinon conserve la version actuelle.
npm updatemettra à 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 installen haut de votre répertoire source exécutera différents scripts: prepublish, preinstall, install, postinstall. Selon ce que font ces scripts, un npm installpeut faire beaucoup plus de travail que d'installer simplement des dépendances.
Je viens d'avoir un cas d'utilisation où prepublishappeler makeet qui a Makefileété conçu pour récupérer les dépendances s'il package.jsonest mis à jour. Appeler npm installdepuis l'intérieur de la Makefileaurait conduit à une récursion infinie, alors que l'appel npm updatefonctionnait très bien, installant toutes les dépendances pour que la construction puisse continuer même si elle makeétait appelée directement.
redismodule, et que vous avez other_modulebesoin d'une ancienne version de redis, vous npm install other_modulegarantissez qu'il other_moduleutilisera l'ancienne version. Il peut s'ajouter other_module/node_modules/redissi 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 updateomettra un grand nombre de dépendances dans package-lock.json. Pour avoir tous les packages requis disponibles et package-lock.jsonpour être correct, je dois toujours exécuter npm installjuste après npm update.
~1.3?