659 Stimmen

npm install vs. update - was ist der Unterschied?

Was ist der praktische Unterschied zwischen npm install y npm update ? Wann sollte ich was verwenden?

799voto

AlexGrafe Punkte 7782

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ügt
  • npm 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 ) mit npm install -g <name>
  • bestimmte, durch Git-Tags beschriebene Versionen installieren
  • von einer Git-Url installieren
  • erzwingen Sie eine Neuinstallation mit --force

111voto

saeed Punkte 3811

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.

51voto

jmav Punkte 3089

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

16voto

DSK Punkte 400

npm update Installation und Aktualisierung mit den neuesten Node-Modulen, die in package.json enthalten sind

npm install Installation von Knotenmodulen, die in package.json definiert sind (ohne Update)

12voto

MvG Punkte 54213

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X