Was ist der praktische Unterschied zwischen npm installund npm update? Wann soll ich welche verwenden?
Was ist der praktische Unterschied zwischen npm installund npm update? Wann soll ich welche verwenden?
Antworten:
Der Unterschied zwischen der npm-Installation und der npm-Update- Behandlung der in package.json angegebenen Paketversionen :
{
"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 besteht darin, dass ein bereits installiertes Modul mit Fuzzy-Versionierung ...
npm installnpm updateZusätzlich : installund updatebehandeln devDependencies standardmäßig anders
npm installwird installiere / aktualisiere devDependencies es sei denn --productionFlag hinzugefügt wirdnpm updatewird ignoriert devDependencies es sei denn , --devFlagge hinzugefügt wirdWarum npm installüberhaupt verwenden?
Denn npm installmacht mehr, wenn Sie neben dem Umgang mit Ihren Abhängigkeiten in suchen package.json. Wie Sie in npm install sehen können , können Sie ...
PATH) mitnpm install -g <name>--forcenpm install --save somePackagedas * in Abhängigkeiten zu speichern?
postinstallbei der Installation ausgeführt werden, aber nicht beim Update.
installund updatearbeiten Sie anders mit Git-URLs, Git-Tags usw., die im angegeben sind package.json, wäre es großartig, diese Fälle dem Beispiel hinzuzufügen.
1.3.0 -> 1.3.1dies ist ähnlich wie ^1.3.0bei der ^Update-Hauptversion, dh 1.3.0 -> 1.4.0.
npm install installiert alle Module, die in der package.jsonDatei aufgeführt sind, und ihre Abhängigkeiten.
npm update aktualisiert alle Pakete im node_modulesVerzeichnis und ihre Abhängigkeiten.
npm install express installiert nur das Express-Modul und seine Abhängigkeiten.
npm update express aktualisiert das Express-Modul (beginnend mit npm@2.x werden die Abhängigkeiten nicht aktualisiert).
Updates sind also für den Fall gedacht, dass Sie das Modul bereits haben und die neue Version erhalten möchten.
npm installoder npm update? Oder mit anderen Worten, ich verwende jetzt npm installund es scheint auch die Aktualisierung durchzuführen. Gibt es einen Grund, warum ich jemals verwenden sollte npm update?
updatewird aktualisiert , immer auf die neueste Version, unabhängig von package.json, während installdie Version in package.json gegeben respektieren?
updateInstalliert (oder aktualisiert) die neueste Version des Moduls. installInstalliert die neueste Version des Moduls, wenn es nicht angezeigt wird. Andernfalls wird die aktuelle Version beibehalten.
npm updatewird basierend auf Ihrer package.json auf die neueste Version aktualisiert, unabhängig davon. Wenn Sie "express": "3.x" haben und sich in Version 3.1.0 befinden, wird es auf das neueste 3.x-Tag aktualisiert. Wenn es eine 4.x-Version gibt, wird nicht die neueste Version installiert.
In den meisten Fällen wird dadurch die neueste Version des auf npm veröffentlichten Moduls installiert.
npm install express --save
oder besser, um das Modul auf die neueste Version zu aktualisieren:
npm install express@latest --save --force
--save: Paket wird in Ihren Abhängigkeiten angezeigt.
Weitere Infos: npm-install
npm install express@latest --save --forcewar genau das, was ich wollte.
Viele Unterschiede wurden bereits erwähnt. Hier ist noch einer:
Laufen npm installan der Spitze Ihres Quellverzeichnis werden verschiedene Skripte ausgeführt: prepublish, preinstall, install, postinstall. Je nachdem, was diese Skripte tun, npm installkann a erheblich mehr Arbeit leisten als nur Abhängigkeiten zu installieren.
Ich hatte gerade einen Anwendungsfall, in dem prepublishaufgerufen wurde, makeund der Makefilewurde entwickelt, um Abhängigkeiten abzurufen, wenn der package.jsonaktualisiert wurde. Das Aufrufen npm installvon innerhalb des Makefilehätte zu einer unendlichen Rekursion geführt, während das Aufrufen einwandfrei npm updatefunktioniert und alle Abhängigkeiten installiert hat, sodass der Build auch dann fortgesetzt werden kann, wenn makeer direkt aufgerufen wird.
redisModul aktualisiert haben und other_moduleeine ältere Version von benötigen redis, npm install other_modulegarantiert wird, dass other_moduledie ältere Version verwendet wird. Es kann other_module/node_modules/redisbei Bedarf hinzugefügt werden.
npm update: Installation und Aktualisierung mit den neuesten Knotenmodulen in package.json
npm install: Installieren Sie Knotenmodule, die in package.json definiert sind (ohne Update).
npm updateEine große Anzahl von Abhängigkeiten in wird weggelassen package-lock.json. Um alle erforderlichen Pakete zur Verfügung zu haben und package-lock.jsonkorrekt zu sein, muss ich immer npm installdirekt danach ausführen npm update.
~1.3?