¿Cómo actualizo devDependencies en NPM?


155

npm updateparece actualizar los paquetes dependencies, pero ¿qué pasa devDependencies?

En este momento puede instalar devDependenciesejecutando npm install ., pero esto no funciona paranpm update .

¿Algunas ideas?


1
Me encontré con lo mismo. Me sorprende esta asimetría entre npm instally npm update. Lo solucioné eliminando mi node_modulesdirectorio y luego ejecutándolo npm installnuevamente, pero seguro que parece que debería haber una mejor manera.
Joe White

77
Abrí un informe de error para este comportamiento. Veremos que pasa.
Joe White

Esto puede deberse a que los desarrolladores de NPM pensaron que la gente los usaría npm linkpara hacer entornos de desarrollo.
Julian Knight

Respuestas:


157

Para actualizar package.json además de los módulos locales, ejecute

npm update --save-dev

Alternativamente, el mismo comando para ahorrar tiempo

npm update -D

Puede ver el detalle completo de la actualización, o cualquier comando al respecto a través de

npm help <cmd>

20
npm update -Dno funcionó para mí, no actualizó nada.
AmazingDreams

27
¿Por qué está marcada como la respuesta correcta cuando la pregunta no es cómo guardar actualizaciones package.jsonsino cómo hacer npm updatepara actualizar devDependencies?
Alejandro García Iglesias

@onalbi: no lo hace. Aquí está el hilo que rastrea el problema .
Dan Dascalescu

1
npm update --save-devfunciona bien para mí Usando nodo v12.11.0y npmv6.11.3
maximedupre



4

Si está utilizando una versión npm desactualizada, podría ser el problema. Entonces, antes de ejecutar cualquier otro comando:

sudo npm install npm -g

o (si lo anterior no funciona):

sudo npm update npm -g

Luego, reinicie la consola (para que los cambios surtan efecto). Ahora puede verificar su nuevo npm --versiony si está actualizado ejecutar:

npm update

o (si lo prefiere):

npm update --save-dev

Desafortunadamente, esto no funciona en npm 5. Aquí está el hilo que rastrea el problema .
Dan Dascalescu

2

Una forma (lenta) de forzar la actualización es eliminar el directorio node_modules y luego hacer npm install volver a .

Este era un error conocido del npm updatecomando, que se ha corregido en la rama de desarrollo de npm, vea aquí: https://github.com/isaacs/npm/pull/3863

Debería aterrizar en la última versión estable de npm muy pronto.


1
En el caso de npm> v5, también deberá eliminarlo package-lock.jsonpara que esto funcione, de lo contrario, solo instalará las versiones enumeradas en ese archivo de bloqueo.
karfau

Además, esto no se actualizará package.jsonpara usted. Aquí está el hilo que rastrea el problema .
Dan Dascalescu

2

Me encontré con el mismo problema que tenía OP y no encontré ninguna solución, así que decidí escribir un complemento Grunt que actualizará automáticamente mis dependencias de desarrollo.

Está en Github, me encantaría obtener algunos aportes y colaboraciones para que sea la mejor herramienta que NPM no ha proporcionado.

Básicamente, actualizará automáticamente sus dependencias de desarrollo obsoletas con una simple tarea de Grunt.

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


2

Lo que funcionó para mí es instalar dependencias de desarrollo individuales como esta

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

1

Estos pasos me funcionaron:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.