Comment mettre à jour devDependencies dans NPM?

155

npm updatesemble simplement mettre à jour les packages dependencies, mais qu'en est-il devDependencies.

Pour le moment, vous pouvez installer devDependenciesen exécutant npm install ., mais cela ne fonctionne pas pournpm update .

Des idées?

Mat
la source
1
J'ai juste rencontré la même chose. Je suis surpris de cette asymétrie entre npm installet npm update. J'ai contourné ce problème en supprimant mon node_modulesrépertoire, puis en le npm installrelançant, mais il semble qu'il devrait y avoir un meilleur moyen.
Joe White
7
J'ai ouvert un rapport de bogue pour ce comportement. Nous allons voir ce qui se passe.
Joe White
Cela peut être dû au fait que les développeurs NPM pensaient que les gens utiliseraient npm linkpour créer des environnements de développement.
Julian Knight

Réponses:

156

Pour mettre à jour package.json en plus des modules locaux, exécutez

npm update --save-dev

Alternativement, la même commande pour gagner du temps

npm update -D

Vous pouvez afficher le détail complet de la mise à jour, ou de toute commande d'ailleurs via

npm help <cmd>
deckerdev
la source
20
npm update -Dn'a pas fonctionné pour moi, il n'a rien mis à jour.
AmazingDreams
28
Pourquoi est-ce marqué comme la bonne réponse alors que la question n'est pas de savoir comment enregistrer les mises à jour package.jsonmais plutôt comment mettre npm updateà jour devDependencies?
Alejandro García Iglesias
@onalbi: ce n'est pas le cas. Voici le fil de suivi du problème .
Dan Dascalescu
1
npm update --save-devfonctionne très bien pour moi. Utilisation de node v12.11.0et npmv6.11.3
maximedupre
55

Installez npm-check-updates ( https://www.npmjs.org/package/npm-check-updates ), puis accédez au dossier de votre projet et exécutez:

npm-check-updates

Et pour mettre à jour et enregistrer les modifications dans votre fichier package.json:

npm-check-updates -u
Michael Thompson
la source
ncuserait mieux que npm-check-updatesde sauver la saisie.
Edric
@DimitriKopriwa il y a une -doption pour devDependencies uniquement
Michael Thompson
ncu --dep dev -u; npm install
Kiruahxh
6

Ce problème ne s'excise plus avec la version actuelle de NPM (1.3.11).

La mise à jour fonctionne bien avec: npm update

Spieglio
la source
2
Malheureusement, ce n’est pas le cas. Voici le fil de suivi du problème .
Dan Dascalescu
4

Si vous utilisez une version obsolète de npm, cela peut être le problème. Donc, avant toute autre commande exécutée:

sudo npm install npm -g

ou (si ci-dessus ne fonctionne pas):

sudo npm update npm -g

Puis relancez la console (pour que les modifications prennent effet). Vous pouvez maintenant vérifier votre nouveau npm --versionet s'il est à jour, exécutez:

npm update

ou (si vous préférez):

npm update --save-dev
jmarceli
la source
Malheureusement, cela ne fonctionne pas dans npm 5. Voici le fil de suivi du problème .
Dan Dascalescu
2

J'ai rencontré le même problème qu'OP et je n'ai trouvé aucune solution, j'ai donc décidé d'écrire un plugin Grunt qui mettra automatiquement à jour mes devDependencies.

C'est sur Github, j'aimerais avoir des commentaires et des collaborations afin d'en faire le meilleur outil que NPM n'a pas fourni.

Fondamentalement, il mettra à jour automatiquement vos dépendances de développement obsolètes avec une simple tâche Grunt.

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

Gilad Peleg
la source
2

Ce qui a fonctionné pour moi, c'est l'installation de dépendances de développement individuelles comme celle-ci

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

Une façon (lente) de forcer la mise à jour consiste à supprimer le répertoire node_modules, puis à npm installrecommencer.

Il s'agissait d'un bogue connu de la npm updatecommande, qui a été corrigé sur la branche de développement de npm, voir ici: https://github.com/isaacs/npm/pull/3863

Il devrait bientôt atterrir sur la dernière version stable de npm.

Rick Deckard
la source
1
Dans le cas de npm> v5, vous devrez également supprimer package-lock.jsonpour que cela fonctionne, sinon il installera simplement les versions répertoriées dans ce fichier de verrouillage.
karfau
De plus, cela ne sera pas mis à jour package.jsonpour vous. Voici le fil de suivi du problème .
Dan Dascalescu
1

Ces étapes ont fonctionné pour moi:

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