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"
}
(Sempre verifique as versões de `node` e `npm` antes de prosseguir)
Se você trabalha em múltiplos projetos que utilizam diferentes versões do Node, então o Node Version Manager (NVM) será útil, pois ajuda a manter e alternar entre diferentes versões do Node.
Paso 3:
Identifique os pacotes desatualizados no seu projeto.
npm outdated
Na imagem acima, podemos ver que os pacotes destacados em vermelho indicam que há uma nova versão disponível e que esse pacote deve ser atualizado.
Paso 4:
Para atualizar um pacote, utilize o seguinte comando.
npm update <nome-do-pacote>
Como boa prática, sempre é bom atualizar um pacote por vez e verificar se há funções que possam ser quebradas. Os casos de teste são muito úteis durante este processo, caso contrário, é necessário verificar manualmente a função dependente que o pacote poderia afetar.
Para atualizar os pacotes glob