Come posso aggiornare devDependencies in NPM?


155

npm updatesembra semplicemente aggiornare i pacchetti dependencies, ma che dire devDependencies.

Al momento è possibile devDependencieseseguire l' installazione eseguendo npm install ., ma questo non funzionanpm update .

Qualche idea?


1
Ho appena incontrato la stessa cosa. Sono sorpreso da questa asimmetria tra npm installe npm update. Ci ho aggirato cancellando la mia node_modulesdirectory e quindi eseguendo di npm installnuovo, ma sembra che ci dovrebbe essere un modo migliore.
— Joe White,

7
Ho aperto una segnalazione di bug per questo comportamento. Vedremo cosa succede.
— Joe White,

Ciò può essere dovuto al fatto che gli sviluppatori di NPM pensavano che le persone avrebbero usato npm linkper fare ambienti di sviluppo.
— Julian Knight,

Risposte:


157

Per aggiornare package.json oltre ai moduli locali, eseguire

npm update --save-dev

In alternativa, lo stesso comando per risparmiare tempo

npm update -D

È possibile visualizzare i dettagli completi dell'aggiornamento o qualsiasi comando relativo

npm help <cmd>

20
npm update -Dnon ha funzionato per me, non ha aggiornato nulla.
— AmazingDreams,

27
Perché questo è contrassegnato come la risposta corretta quando la domanda non è come salvare gli aggiornamenti package.jsonma piuttosto come fare npm updateper aggiornare devDependencies?
— Alejandro García Iglesias,


1
npm update --save-devfunziona bene per me. Utilizzando node v12.11.0e npmv6.11.3
— maximedupre l'



4

Se si utilizza una versione di npm obsoleta, potrebbe trattarsi del problema. Quindi, prima di eseguire qualsiasi altro comando:

sudo npm install npm -g

o (se sopra non funziona):

sudo npm update npm -g

Quindi riavviare la console (affinché le modifiche abbiano effetto). Ora puoi controllare il tuo nuovo npm --versione se è aggiornato eseguire:

npm update

o (se preferisci):

npm update --save-dev

Sfortunatamente, questo non funziona in npm 5. Ecco il thread che tiene traccia del problema .
— Dan Dascalescu,

2

Un modo (lento) per forzare l'aggiornamento è rimuovere la directory node_modules e quindi npm installripetere l'operazione.

Questo era un bug noto del npm updatecomando, che è stato corretto nel ramo di sviluppo di npm, vedere qui: https://github.com/isaacs/npm/pull/3863

Dovrebbe atterrare sull'ultima versione stabile di npm abbastanza presto.


1
In caso di npm> v5 dovresti anche rimuovere package-lock.jsonper farlo funzionare, altrimenti installerà solo le versioni elencate in quel file di blocco.
— karfau,

Inoltre, questo non si aggiorna package.jsonper te. Ecco il thread che segue il problema .
— Dan Dascalescu,

2

Ho riscontrato lo stesso problema di OP e non ho trovato alcuna soluzione, quindi ho deciso di scrivere un plug-in Grunt che aggiornerà automaticamente le mie devDependencies ..

È su Github, mi piacerebbe ricevere input e collaborazioni per renderlo lo strumento migliore che NPM non ha fornito.

Fondamentalmente aggiornerà automaticamente le tue dipendenze di sviluppo obsolete con una semplice Grunt Task.

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


2

Ciò che ha funzionato per me è l'installazione di dipendenze dei singoli sviluppatori come questa

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

1

Questi passaggi hanno funzionato per me:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.