Was ist der praktische Unterschied zwischen npm install
y npm update
? Wann sollte ich was verwenden?
Antworten
Zu viele Anzeigen?Der Unterschied zwischen npm-Installation y npm-Aktualisierung Behandlung von Paketversionen, die in paket.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
}
}
Zusammenfassung : Der einzige große Unterschied ist, dass ein bereits installiertes Modul mit unscharfer Versionierung ...
- wird ignoriert von
npm install
- wird aktualisiert durch
npm update
Zusätzlich : install
y update
standardmäßig devDependencies anders behandeln
npm install
wird installieren/aktualisieren devDependencies es sei denn--production
wird hinzugefügtnpm update
wird ignorieren. devDependencies es sei denn--dev
wird hinzugefügt
Warum verwenden npm install
überhaupt?
Porque npm install
tut mehr, wenn man neben der Handhabung der Abhängigkeiten in package.json
. Wie Sie sehen können in npm-Installation können Sie ...
- node-modules manuell installieren
- setzen sie als weltweit (wodurch sie in der Shell in die
PATH
) mitnpm install -g <name>
- bestimmte, durch Git-Tags beschriebene Versionen installieren
- von einer Git-Url installieren
- erzwingen Sie eine Neuinstallation mit
--force
npm-Installation installiert alle Module, die unter package.json
Datei und deren Abhängigkeiten.
npm-Aktualisierung aktualisiert alle Pakete in der node_modules
Verzeichnis und deren Abhängigkeiten.
npm install express installiert nur das Express-Modul und seine Abhängigkeiten.
npm update express aktualisiert das Expressmodul (ab npm@2.x werden die Abhängigkeiten nicht mehr aktualisiert).
Updates sind also dafür gedacht, wenn Sie das Modul bereits haben und die neue Version erhalten möchten.
In den meisten Fällen wird dadurch die neueste Version des Moduls installiert, die auf npm veröffentlicht wurde.
npm install express --save
oder besser ein Upgrade des Moduls auf die neueste Version verwenden:
npm install express@latest --save --force
--save
: Das Paket wird in Ihren Abhängigkeiten erscheinen.
Mehr Informationen: npm-install
Viele Unterscheidungen sind bereits erwähnt worden. Hier ist eine weitere:
Laufen npm install
am Anfang Ihres Quellverzeichnisses werden verschiedene Skripte ausgeführt: prepublish
, preinstall
, install
, postinstall
. Je nachdem, was diese Skripte tun, kann ein npm install
kann erheblich mehr Arbeit machen als nur die Installation von Abhängigkeiten.
Ich habe gerade einen Anwendungsfall gehabt, bei dem prepublish
würde nennen make
und die Makefile
wurde entworfen, um Abhängigkeiten zu holen, wenn die package.json
wurde aktualisiert. Aufruf von npm install
aus dem Makefile
hätte zu einer unendlichen Rekursion geführt, während der Aufruf von npm update
funktionierte einwandfrei und installierte alle Abhängigkeiten, so dass die Erstellung auch dann fortgesetzt werden konnte, wenn make
wurde direkt aufgerufen.