JavaScript

Guía: Transferir las dependencias globales al actualizar Node.js con NVM

Node.js es la plataforma de desarrollo clave para la mayoría de los desarrolladores de JavaScript. Actualizar la última versión del entorno es clave para poder aprovechar las nuevas características, obtener mejoras de rendimiento y los parches de seguridad. Algo que se puede hacer fácilmente con NVM (Node Version Manager) tanto en Windows como en Linux o macOS. Sin embargo, actualizar Node.js con NVM puede llevar a una situación frustrante: las dependencias globales instaladas en la versión anterior de Node.js no se trasladan automáticamente a la nueva versión. En esta guía se abordará cómo transferir las dependencias globales al actualizar Node.js para solucionar este problema.

Problema: Transferir las dependencias globales al actualizar Node.js

Después de utilizar el comando nvm para instalar una versión de Node.js, está en tiene su propio conjunto de dependencias globales. Solamente las dependencias por defecto. Esto significa que cualquier paquete global instalado en la versión anterior de Node.js, como puede ser ESLint, Angular CLI o TypeScript, no estará disponible en la nueva versión por defecto. Una situación que puede ser frustrante, especialmente cuando estas herramientas globales son necesarias para los proyectos.

Solución: Transferencia manual de las dependencias globales

La solución al problema se puede hacer en dos pasos: obtener el listado de dependencias y usar estas para instalar las dependencias en el nuevo entorno.

Paso 1: Obtener la lista las dependencias globales en la versión anterior

Antes de migrar, primero se debe identificar las dependencias globales instaladas en la versión en uso de Node.js antes de actualizar la nueva. Para hacer esto, solamente se debe activar la versión Node.js y obtener el listado de los paquetes globales:

  1. Abris una terminal o PowerShell.
  2. Cambiar a la versión anterior de Node.js usando nvm:
nvm use <versión_anterior>

Donde se debe reemplazar <versión_anterior> con la versión específica de Node.js que se está utilizando actualmente.

  1. Listado los paquetes globales instalados:
npm list -g --depth=0

Este comando muestra una lista de todos los paquetes globales instalados sin mostrar sus dependencias internas (gracias a paramero --depth=0). Si la lista es pequeña se puede apuntar, pero es más fácil guardar esta en un archivo.

Guarda las dependencias globales en un archivo

Para facilitar la transferencia, es mejor guardar la lista de dependencias globales en un archivo. En un entorno Unix (Linux/macOS) se puede usar el siguiente comando:

npm list -g --depth=0 --parseable | sed 's/.*node_modules\///' | tail -n +2 > global_packages.txt

En Windows PowerShell, el comando sería:

npm list -g --depth=0 --parseable | ForEach-Object { $_ -replace '.*node_modules\\', '' } | Select-Object -Skip 1 > global_packages.txt

Estos comandos crearán un nuevo archivo global_packages.txt que contiene una lista de todos los paquetes globales instalados.

Paso 2: Instalar las dependencias globales en la nueva versión

Ahora, se puede cambiar a la nueva versión de Node.js y emplear el archivo creado para reinstalar todas las dependencias globales:

  1. Cambiar a la nueva versión de Node.js:
nvm use <nueva_versión>

En donde se debe reemplazar <nueva_versión> con la versión específica de Node.js que se desea usar a partir de ahora.

  1. Instalar las dependencias globales usando el archivo. En Unix (Linux/macOS):
xargs npm install -g < global_packages.txt

En Windows PowerShell:

Get-Content global_packages.txt | ForEach-Object { npm install -g $_ }

Este proceso instalará todas las dependencias globales en la nueva versión de Node.js, asegurando que tu entorno de desarrollo se mantenga consistente.

Conclusiones

Mantener las dependencias globales consistentes al actualizar Node.js es crucial para no interrumpir los flujos de trabajo. En esta guía se ha visto cómo realizar esta tarea después de instalar una nueva versión de Node.js con nvm. Al seguir estos pasos, podemos estar seguros de que el entorno de desarrollo se mantenga intacto y funcional después de cada actualización.

Imagen de Tumisu en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Node

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

3 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

5 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.