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.