Quelle est la différence pratique entre npm install
y npm update
? Quand dois-je utiliser lequel ?
Et qu'en est-il ~1.3
?
Quelle est la différence pratique entre npm install
y npm update
? Quand dois-je utiliser lequel ?
La différence entre npm install y mise à jour de npm la gestion des versions de paquet spécifiées dans paquet.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 versionnement flou ...
npm install
npm update
En outre, : install
y update
gèrent par défaut les devDependencies différemment
npm install
sera installer/mettre à jour devDependencies sauf si --production
le drapeau est ajouténpm update
sera ignorer devDependencies sauf si --dev
le drapeau est ajoutéPourquoi utiliser npm install
du tout ?
Parce que npm install
fait plus si l'on considère qu'en plus de gérer vos dépendances dans package.json
. Comme vous pouvez le voir dans npm install vous pouvez ...
PATH
) en utilisant npm install -g <name>
--force
Et si la version est du type ^5.0.9 ? Et est-il possible de faire npm install --save somePackage
enregistrer les * dans les dépendances ?
J'ai vu que npm install rapporte des erreurs sur les dépendances manquantes et que npm update ne le fait pas.
npm install installe tous les modules qui sont listés sur package.json
et leurs dépendances.
mise à jour de npm met à jour tous les paquets dans le 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 npm@2.x, il ne met pas à jour ses dépendances).
Les mises à jour sont donc destinées aux personnes qui possèdent déjà le module et qui souhaitent obtenir la nouvelle version.
Si vous ne spécifiez pas une version particulière dans un fichier package.json, npm install obtiendra la dernière version d'un module. C'est donc une sorte de mise à jour.
Alors, que dois-je utiliser ? npm install
o npm update
? Ou, en d'autres termes, j'utilise maintenant npm install
et il semble faire la mise à jour aussi bien, y a-t-il une raison pour laquelle je devrais jamais utiliser npm update
?
Si vous ne spécifiez pas de version pour vos modules, vous pouvez continuer à utiliser npm install pour effectuer les mises à jour. Mais généralement, c'est une bonne idée de spécifier une version de module dans votre fichier package.json. Dans ce cas, vous ne pouvez pas utiliser npm install pour effectuer les mises à jour.
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 à jour le module à la dernière version utiliser :
npm install express@latest --save --force
--save
: Le paquet apparaîtra dans vos dépendances.
Plus d'informations : npm-install
De nombreuses distinctions ont déjà été mentionnées. En voici une autre :
Running npm install
en haut de votre répertoire source lancera divers scripts : prepublish
, preinstall
, install
, postinstall
. En fonction de ce que font ces scripts, une npm install
peut faire beaucoup plus de travail que la simple installation des dépendances.
Je viens d'avoir un cas d'utilisation où prepublish
appellerait make
y el Makefile
a été conçu pour récupérer les dépendances si l'option package.json
a été mis à jour. Appeler npm install
de l'intérieur de la Makefile
aurait conduit à une récursion infinie, alors qu'appeler npm update
a bien fonctionné, installant toutes les dépendances afin que la construction puisse se poursuivre même si make
a été appelé directement.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.