Actualizar todos los módulos de un proyecto en Node.js a su última versión automáticamente

Estos días he estado revisando y actualizando código de hace tres años, donde el cuidado que debo tener con las dependencias de Node.js es bajo, ya que es código de ejemplo de algunos de mis artículos. Es por ello que he querido actualizar las librerías involucradas a la última versión lo más rápido posible. En este artículo te cuento cómo lo he hecho.

La buena práctica

Si quieres saber cuáles de tus módulos están desactualizados, puedes usar el siguiente comando:

npm outdated

Este te devolverá un resumen como el siguiente:

npm outdated

Sin embargo, cuando ejecutamos el siguiente comando:

npm update --save/--save-dev

Este se rige por las reglas de versionado de npm, por lo que la actualización en muchas ocasiones no será total, si muchos de tus módulos tienen actualizaciones mayores. La buena práctica es hacer esta actualización de forma manual, testeando tu aplicación con cada cambio.

npm-check-updates

Como no es el caso en estos repos, para conseguir mi objetivo he hecho uso de este módulo, npm-check-updates, que hace justo lo que necesito: fuerza la actualización del package.json a la última versión de cada uno de los paquetes. No es lo ideal en escenarios productivos pero para repositorios de demos, abandonados, o en fase de desarrollo nos facilita mucho trabajo manual, sobre todo si tenemos muchas dependencias.

Para ejecutarlo puedes utilizar npx:

npx npm-check-updates

O bien instalarlo de forma global:

npm install -g npm-check-updates

y luego ejecutarlo usando el siguiente comando:

ncu

En cualquiera de los casos tendrás un resultado como el siguiente:

npx check-updates o ncu

Te mostrará el resumen de los posibles cambios y utilizando el mismo comando con -u los aplicará.

npx npm-check-updates -u
# or
ncu -u

De esta forma puedes actualizar de forma rápida tu package.json y solo quedará que ejecutes npm install para instalar las versiones recientes de tus módulos.

¡Saludos!