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?


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>

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



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

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


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

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.