Actualiza todas las dependencias de un proyecto NodeJS a su última versión
Como puedes actualizar todas las dependencias npm del archivo package.json, a su última versión disponible?
Cuando instalas un paquete usando npm install <packagename>
, la última versión del paquete es descargada y almacenada en la carpeta node_modules, y una entrada correspondiente es agregada a los archivos package.json
y package-lock.json
presentes en la carpeta actual.
NPM calcula las dependencias e instala las versiones más actuales disponibles de estas también.
Como ejemplo procedemos a instalar mongoose con npm install mongoose
, esta entrada es agregada al archivo package.json:
1 | { |
adicional el archivo package-lock.json
es actualizado con las respectivas dependencias (las dependencias anidadas removidas por claridad):
1 | { |
Ahora estos 2 archivos nos dicen que hemos instalado la versión 5.8.9
de mongoose
, y la regla para actualizaciones es ^5.8.9
, que según las reglas de versionamiento de npm significa que se puede actualizar sólo parches y versiones menores: 5.9.0
, 5.9.1
y así sucesivamente.
Pero esto no aplica para versiones mayores que pueden romper la compatibilidad, para este ejemplo 6.0.0
o mayor.
Si hay una actualización menor o parche y ejecutamos npm update
, la versión instalada es actualizada, y el archivo package-lock.json
será actualizado también con la nueva versión.
El archivo package.json
permanece sin cambios.
Para descubrir nuevas versiones mayores, ejecutamos npm outdated
. El comando mostrará la lista de paquetes desactualizados como vemos en este ejemplo:
Si la última versión es una versión mayor, ejecutar npm update
no actualizará a esta versión. las versiones mayores nunca son actualizadas de esta manera porque (por definición) introduce cambios dañinos, y npm quiere evitar esto.
Para actualizar a una versión mayor todos los paquetes, instala el paquete npm-check-updates
globalmente:
1 | npm install -g npm-check-updates |
luego ejecútalo:
1 | ncu -u |
Esto actualizará todas las dependencias a su última versión mayor en el archivo package.json
, para poder instalarlas.
Ahora ejecuta la actualización:
1 | npm update |
Actualiza todas las dependencias de un proyecto NodeJS a su última versión