Pregunta ¿Cómo actualizo cada dependencia en package.json a la última versión?


Copié package.json de otro proyecto y ahora quiero cambiar todas las dependencias a sus últimas versiones ya que este es un proyecto nuevo y no me importa arreglar algo si se rompe.

¿Cuál es la forma más fácil de hacer esto?

La mejor forma que conozco ahora es correr npm info express version luego actualiza package.json manualmente para cada uno. Debe haber una mejor manera.

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "engines": {
    "node": "0.8.4",
    "npm": "1.1.65"
  },
  "private": true,
  "dependencies": {
    "express": "~3.0.3", // how do I get these bumped to latest?
    "mongodb": "~1.2.5",
    "underscore": "~1.4.2",
    "rjs": "~2.9.0",
    "jade": "~0.27.2",
    "async": "~0.1.22"
  }
}

Ahora soy un colaborador en npm-check-updates, que es una gran solución a este problema.


1429
2018-04-18 02:39


origen


Respuestas:


Parece npm-check-updates es la única forma de hacer que esto suceda ahora.

npm i -g npm-check-updates
ncu -u
npm install

En npm <3.11:

Simplemente cambie la versión de cada dependencia a *, entonces corre npm update --save. (Nota:  roto en las versiones recientes (3.11) de npm)

Antes de:

  "dependencies": {
    "express": "*",
    "mongodb": "*",
    "underscore": "*",
    "rjs": "*",
    "jade": "*",
    "async": "*"
  }

Después:

  "dependencies": {
    "express": "~3.2.0",
    "mongodb": "~1.2.14",
    "underscore": "~1.4.4",
    "rjs": "~2.10.0",
    "jade": "~0.29.0",
    "async": "~0.2.7"
  }

Por supuesto, este es el martillo contundente de actualizar dependencias. Está bien si, como dijiste, el proyecto está vacío y nada puede romperse.

Por otro lado, si está trabajando en un proyecto más maduro, probablemente quiera verificar que no haya cambios importantes en sus dependencias antes de la actualización.

Para ver qué módulos están desactualizados, solo ejecuta npm outdated. Enumerará todas las dependencias instaladas que tengan versiones más nuevas disponibles.


1689
2018-04-18 03:35



npm-check-updates es una utilidad que ajusta automáticamente un paquete.json con el la última versión de todas las dependencias

ver https://www.npmjs.org/package/npm-check-updates

$ npm install -g npm-check-updates
$ ncu -u
$ npm install 

863
2018-04-03 21:53



TLDR; (actualizado para versiones más nuevas de NPM)

Las cosas han cambiado un poco desde que estas respuestas fueron escritas originalmente.

npm 2+: npm outdated+npm update+npm shrinkwrap

Mayores npm: npm-check-updates paquete + npm shrinkwrap

Asegúrese de encoger sus deps, o puede terminar con un proyecto muerto. El otro día saqué un proyecto y no se pudo ejecutar porque mis dispositivos estaban desactualizados / actualizados / un desastre. Si tuviera una envoltura arrugada, npm habría instalado exactamente lo que necesitaba.


Detalles

Para los curiosos que llegan hasta aquí, esto es lo que recomiendo:

Utilizar npm-check-updates o npm outdated sugerir las últimas versiones.

# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.  
$ npm update

#       OR

# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u

Luego haga una instalación limpia (sin el rm recibí algunas advertencias de dependencia)

$ rm -rf node_modules
$ npm install 

Por último, guarde las versiones exactas para npm-shrinkwrap.json con npm shrinkwrap

$ rm npm-shrinkwrap.json
$ npm shrinkwrap

Ahora, npm install ahora usará versiones exactas en npm-shrinkwrap.json

Si revisas npm-shrinkwrap.json en git, todas las instalaciones usarán las mismas versiones exactas.

Esta es una forma de transición del desarrollo (todas las actualizaciones, todo el tiempo) a la producción (nadie toca nada).


294
2018-06-02 22:29



Actualizar uno dependencia a su última versión sin tener que abrir manualmente el package.json y cámbialo, puedes correr

npm install {package-name}@* {save flags?}

es decir

npm install express@* --save

Para referencia, npm-instalar


Como lo señaló el usuario Vespakoen en una edición rechazada, también es posible actualizar varios paquetes a la vez de esta manera:

npm install --save package-nave@* other-package@* whatever-thing@*

Él también ofrece un trazador de líneas para el caparazón basado en npm outdated. Ver la edición para codigo y explicacion


PD: también odio tener que editar manualmente package.json para cosas como esa;)


155
2018-04-30 14:51



Si estás usando Código de Visual Studio como su IDE, esta es una pequeña extensión divertida para actualizar package.json un proceso de un clic.

Versión Lense

enter image description here


50
2018-03-27 20:00



Esto funciona a partir de npm 1.3.15.

"dependencies": {
  "foo": "latest"
}

49
2018-01-21 22:35



  1. Utilizar * como la versión para las últimas versiones, incluida la inestable
  2. Utilizar latest como definición de versión para la última versión estable
  3. Modifique el paquete.json con exactamente el último número de versión estable usando LatestStablePackages

Aquí hay un ejemplo:

"dependencies": {
        "express": "latest"  // using the latest STABLE version
    ,   "node-gyp": "latest"    
    ,   "jade": "latest"
    ,   "mongoose": "*" // using the newest version, may involve the unstable releases
    ,   "cookie-parser": "latest"
    ,   "express-session": "latest"
    ,   "body-parser": "latest"
    ,   "nodemailer":"latest"
    ,   "validator": "latest"
    ,   "bcrypt": "latest"
    ,   "formidable": "latest"
    ,   "path": "latest"
    ,   "fs-extra": "latest"
    ,   "moment": "latest"
    ,   "express-device": "latest"
},

38
2018-01-23 03:45



La única advertencia que he encontrado con la mejor respuesta anterior es que actualiza los módulos a la última versión. Esto significa que podría actualizar a una versión alfa inestable.

Usaría esa utilidad npm-check-updates. Mi grupo usó esta herramienta y funcionó de manera efectiva al instalar las actualizaciones estables.

Como dijo Etienne arriba: instala y ejecuta con esto:

$ npm install -g npm-check-updates
$ npm-check-updates -u
$ npm install 

34
2018-02-11 23:37



Para ver qué paquetes tienen versiones más nuevas disponibles, utilice el siguiente comando:

npm outdated

para actualizar solo uno dependencia simplemente use el siguiente comando:

npm install yourPackage@latest --save

Por ejemplo:

Mi package.json archivo tiene dependencia:

"@progress/kendo-angular-dateinputs": "^1.3.1",

entonces debería escribir:

npm install @progress/kendo-angular-dateinputs@latest --save

24
2017-12-07 07:01



Aquí hay una expresión regular para que coincida con los números de la versión semántica para que pueda reemplazarlos rápidamente con un asterisco.

Versión semántica Regex

([>|<|=|~|^|\s])*?(\d+\.)?(\d+\.)?(\*|\d+)

Cómo utilizar

Seleccione las versiones del paquete que desea reemplazar en el archivo JSON.

screenshot:select the text you want to replace

Ingrese la expresión regular anterior y verifique que coincida con el texto correcto.

screenshot:input the semver regex above

Reemplaza todas las coincidencias con un asterisco.

screenshot:replace package versions with an asterisk

correr npm update --save


21
2018-03-04 15:21



Realmente me gusta cómo npm-upgrade trabajos. Es una utilidad de línea de comandos simple que pasa por todas sus dependencias y le permite ver la versión actual en comparación con la última versión y actualizarla si lo desea.

Aquí hay una captura de pantalla de lo que sucede después de ejecutar npm-upgrade en la raíz de su proyecto (al lado del package.json archivo):

npm upgrade example

Para cada dependencia puede elegir actualizar, ignorar, ver el registro de cambios o finalizar el proceso. Me ha funcionado muy bien hasta ahora.


21
2017-08-22 20:08