Wie aktualisiere ich devDependencies in NPM?

155

npm updatescheint nur die Pakete zu aktualisieren dependencies, aber was ist mit devDependencies.

Im Moment können Sie devDependenciesdurch Ausführen installieren npm install ., aber das funktioniert nicht fürnpm update .

Irgendwelche Ideen?

Matt
quelle
1
Ich bin einfach auf dasselbe gestoßen. Ich bin überrascht über diese Asymmetrie zwischen npm installund npm update. Ich habe es umgangen, indem ich mein node_modulesVerzeichnis gelöscht und dann npm installwieder ausgeführt habe, aber es scheint sicher, dass es einen besseren Weg geben sollte.
Joe White
7
Ich habe einen Fehlerbericht für dieses Verhalten geöffnet . Mal sehen was passiert.
Joe White
Dies kann daran liegen, dass die NPM-Entwickler dachten, dass die Leute dies npm linkfür Entwicklungsumgebungen verwenden würden .
Julian Knight

Antworten:

157

Führen Sie aus, um package.json zusätzlich zu den lokalen Modulen zu aktualisieren

npm update --save-dev

Alternativ der gleiche Befehl, um Zeit zu sparen

npm update -D

Sie können die vollständigen Details der Aktualisierung oder einen beliebigen Befehl für diese Angelegenheit anzeigen

npm help <cmd>
deckerdev
quelle
20
npm update -Dhat bei mir nicht funktioniert, es hat nichts aktualisiert.
AmazingDreams
27
Warum wird dies als die richtige Antwort markiert, wenn die Frage nicht lautet, wie Updates gespeichert werden sollen , package.jsonsondern wie npm updatedevDependencies aktualisiert werden sollen?
Alejandro García Iglesias
@onalbi: tut es nicht. Hier ist der Thread, der das Problem verfolgt .
Dan Dascalescu
1
npm update --save-devfunktioniert gut für mich. Verwenden von Node v12.11.0und v6.11.3
Npm
55

Installieren Sie npm-check-updates ( https://www.npmjs.org/package/npm-check-updates ), springen Sie in Ihren Projektordner und führen Sie Folgendes aus:

npm-check-updates

Und um Änderungen an Ihrer package.json-Datei zu aktualisieren und zu speichern:

npm-check-updates -u
Michael Thompson
quelle
ncuwäre besser als npm-check-updatesdas tippen zu sparen.
Edric
@ DimitriKopriwa gibt es eine -dOption nur für devDependencies
Michael Thompson
ncu --dep dev -u; npm installieren
Kiruahxh
7

Dieses Problem tritt mit der aktuellen Version von NPM (1.3.11) nicht mehr auf.

Update funktioniert gut mit: npm update

Spieglio
quelle
1
Leider nicht. Hier ist der Thread, der das Problem verfolgt .
Dan Dascalescu
4

Wenn Sie eine veraltete npm-Version verwenden, liegt dies möglicherweise am Problem. Bevor also andere Befehle ausgeführt werden:

sudo npm install npm -g

oder (wenn oben nicht funktioniert):

sudo npm update npm -g

Dann Relaunch der Konsole (um die Änderungen zu übernehmen). Jetzt können Sie Ihr neues überprüfen npm --versionund ausführen, wenn es aktuell ist:

npm update

oder (wenn Sie es vorziehen):

npm update --save-dev
jmarceli
quelle
Leider funktioniert dies in npm 5 nicht. Hier ist der Thread, der das Problem verfolgt .
Dan Dascalescu
2

Eine (langsame) Möglichkeit, die Aktualisierung zu erzwingen, besteht darin, das Verzeichnis node_modules zu entfernen und es dann npm installerneut durchzuführen .

Dies war ein bekannter Fehler des npm updateBefehls, der im Entwicklungszweig von behoben npmwurde. Siehe hier: https://github.com/isaacs/npm/pull/3863

Es sollte ziemlich bald auf der neuesten stabilen Version von npm landen.

Rick Deckard
quelle
1
Im Fall von npm> v5 müssten Sie auch entfernen package-lock.json, damit dies funktioniert. Andernfalls werden nur die in dieser Sperrdatei aufgeführten Versionen installiert.
Karfau
Dies wird auch nicht package.jsonfür Sie aktualisiert . Hier ist der Thread, der das Problem verfolgt .
Dan Dascalescu
2

Ich hatte das gleiche Problem wie OP und fand keine Lösung. Deshalb habe ich beschlossen, ein Grunt-Plugin zu schreiben, das meine devDependencies automatisch aktualisiert.

Es ist auf Github, ich würde gerne Input und Zusammenarbeit erhalten, um es zum besten Tool zu machen, das NPM nicht zur Verfügung gestellt hat.

Grundsätzlich werden Ihre veralteten Entwicklungsabhängigkeiten mit einer einfachen Grunt-Aufgabe automatisch aktualisiert.

https://github.com/pgilad/grunt-dev-update

Gilad Peleg
quelle
2

Was für mich funktioniert hat, ist die Installation einzelner Entwicklungsabhängigkeiten wie diese

npm install react-test-renderer@15.6.1 --save --only=dev
Varsha
quelle
1

Diese Schritte haben bei mir funktioniert:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Alferd Nobel
quelle