¡Antecedentes!
Hace unos días, mi equipo estuvo involucrado en la actualización de las dependencias del proyecto, como parte de la actividad de mantenimiento del código del proyecto. Esto incluyó la actualización de Node y otros paquetes centrales que estaban desactualizados. En esta publicación, compartiré los pasos que seguimos durante el proceso, ¡y creo que te serán útiles algún día!
Node.js es un entorno de ejecución de JavaScript de código abierto y multiplataforma, que es mantenido activamente por una gran comunidad y ofrece lanzamientos con muchas funciones dos veces al año.
NPM es el gestor de paquetes predeterminado de Node, que ofrece una interfaz de línea de comandos y un repositorio en línea de paquetes públicos y privados. Cada paquete es un módulo de Node (conjunto de archivos que contienen principalmente códigos JavaScript) que es capaz de realizar un conjunto específico de acciones.
por ejemplo, Lodash, un módulo de utilidad que facilita la manipulación de objetos/matrices. ¡En el momento de escribir esta publicación, hubo un total de 30 versiones, y fue utilizado por 174672 proyectos!
¿Cuándo actualizar?
Como requisito previo, aquí hay algunas consideraciones que uno debe tener en cuenta antes de actualizar los paquetes:
-
Los paquetes desactualizados pueden tener vulnerabilidades de seguridad que pueden ser explotadas. Por lo tanto, siempre es bueno actualizar un paquete desactualizado.
-
Las actualizaciones de paquetes a menudo contienen correcciones de errores o mejoras. Aunque siempre es bueno obtener las correcciones de errores, las mejoras de funciones se pueden instalar según sea necesario.
-
A medida que los paquetes envejecen, pueden surgir problemas de compatibilidad de versiones. Siempre es bueno mantener los paquetes compatibles con la versión subyacente del motor Node.
¿Cómo actualizar?
Al observar la fase inicial del proceso de actualización, es ideal comenzar verificando la versión de Node en uso y asegurándose de elegir la versión de Soporte a Largo Plazo (LTS) más cercana. ¡Las versiones LTS suelen mantenerse durante un período de tiempo mucho más largo! Estas versiones LTS se eligen especialmente para el entorno de producción, ya que se centran en la estabilidad y confiabilidad. Al escribir esta publicación, la versión más reciente era la v20.5.0 y la versión LTS era la v.18.17.0.
Paso 1:
Crea una nueva rama para este proceso y toma nota de las versiones actuales de node y npm
Paso 2:
Es ideal mantener las mismas versiones de `node` y `npm` en todos los entornos, para garantizar el buen funcionamiento del proyecto. La propiedad `engines` en el archivo package.json principal debe tener esta información específica de la versión (realiza cambios si es necesario).
"engines": {
"node": "18.17.0",
"npm": "9.8.1"
}
(Siempre verifica las versiones de `node` y `npm` antes de continuar)
Si trabajas en múltiples proyectos que utilizan diferentes versiones de Node, entonces Node Version Manager (NVM) resulta útil, ya que te ayuda a mantener y cambiar entre diferentes versiones de Node.
Paso 3:
Identifica los paquetes desactualizados en tu proyecto.
npm outdated
En la imagen anterior, podemos ver que los paquetes resaltados en color rojo indican que hay una nueva versión disponible y que ese paquete debe actualizarse.
Paso 4:
Para actualizar un paquete, utiliza el siguiente comando.
npm update <nombre-del-paquete>
Como buena práctica, siempre es bueno actualizar un paquete a la vez y verificar si hay funciones que puedan romperse. Los casos de prueba son muy útiles durante este proceso, si no, es necesario verificar manualmente la función dependiente que el paquete podría afectar.
Para actualizar los paquetes glob