npm install vs. update-Quelle est la différence?
Quelle est la différence pratique entre les npm install
et npm update
? Quand devrais-je utiliser lequel?
4 réponses
La différence entre npm install et mnp de mise à jour gestion de versions de package spécifié 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 une version floue ...
- est ignoré par
npm install
- est mis à jour par
npm update
En Outre: install
et update
par défaut poignée devDependencies différemment
-
npm install
va installer/mettre à jour devDependencies à moins que--production
drapeau est Ajouté -
npm update
ignorera devDependencies à moins que--dev
drapeau est Ajouté
Pourquoi utiliser npm install
, à tous?
Parce que npm install
fait plus quand vous regardez en plus de gérer vos dépendances dans package.json
.
Comme vous pouvez le voir dans npm install, vous pouvez ...
- installer manuellement nœud-modules
- définissez-les comme global (qui les met dans le shell
PATH
) en utilisantnpm install -g <name>
- installer certaines versions décrites par les balises git
- installer à partir d'une url git
- forcer une réinstallation avec
--force
Npm install installe tous les modules répertoriés dans le fichier package.json
et leurs dépendances.
Npm update met à jour tous les paquets 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 (en commençant par npm@2.x, il ne met pas à jour ses dépendances).
Donc les mises à jour sont pour quand vous avez déjà le module et souhaitez 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 Utiliser:
npm install express@latest --save --force
--save
: logiciel apparaîtra dans vos dépendances.
Plus d'infos: npm-installer
De nombreuses distinctions ont déjà été mentionnées. Voici un de plus:
L'Exécution de npm install
en haut de votre répertoire source exécute plusieurs scripts: prepublish
, preinstall
, install
, postinstall
. Selon ce que font 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
était conçu pour récupérer les dépendances si le package.json
était mis à jour. Appeler npm install
depuis le Makefile
aurait conduit à un la récursivité infinie, tout en appelant npm update
a très bien fonctionné, en installant toutes les dépendances afin que la construction puisse continuer même si make
était appelé directement.