💻 Node.js mediante NVM: los comandos que más utilizo

NVM es un manejador de versiones de Node.js que nos permite poder mantenernos al tanto de nuevos lanzamientos y actualizaciones de este entorno de ejecución en nuestro sistema operativo. Una de sus grandes ventajas es poder contar con diferentes versiones instaladas conjuntamente y cambiar entre ellas dependiendo de nuestras necesidades.

Instalación de NVM

Para instalar NVM debemos seguir [la guía oficial](http://curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash). En estos momentos indica dos posibles opciones mediante la línea de comandos:

# opción 1: usando CURL
; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

# opción 2: usando WGET
; wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Después de descargar el ejecutable hay que actualizar nuestro perfil de línea de comandos

# agrega estas líneas a tu ~/.zshrc o ~/.bashrc

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

Para poder comenzar a utilizarlo hay que recargar la línea de comandos, una forma fácil de hacerlo es cerrando la terminal y volviéndola a abrir.

Posteriormente podemos ejecutar nvm --version para corroborar la instalación. Por ejemplo

; nvm --version
0.39.1

⚠️ La versión que se observa el comando anterior puede ser diferente para el momento en que leas esto.Por favor consulta la documentación para la instalación.

Instalación de Node.js

Una vez instalado NVM podemos instalar diferentes versiones de Node

# instalando la versión más reciente
; nvm install node

# instalando la última versión con soporte a largo plazo (LTS)
; nvm install --lts

# instalando una versión en específico
; nvm install v16.17.1

Para listar las versiones disponibles

# listar sólo las versiones instaladas en nuestro S.O.
; nvm ls

# listas todas las versiones disponibles
; nvm ls-remote

Usando una versión en específico

Por defecto la primera versión que se instala es la que será usada cada vez que inicies un nuevo entorno de ejecución. Para poder cambiar a otra versión específica hacemos uso del subcomando use

# cambia a la última versión estable instalada
; nvm use stable
Now using node v18.10.0 (npm v8.19.2)

# cambia a la última versión LTS instalada
; nvm use --lts
Now using node v16.17.1 (npm v8.15.0)

# cambia a la última versión 14 instalada
; nvm use 14
Now using node v14.15.4 (npm v6.14.10)

# cambia a una versión instalada en específico
; nvm use v16.13.0

Cambiando la versión usada por defecto

El alias default de NVM asocia la versión cargada por defecto. Podemos observar esto listando nuestras versiones instaladas.

; nvm ls
       [...]
->     v16.17.1
       v18.10.0
         system
default -> 16 (-> v16.17.1)

Si queremos cambiar qué versión está asociada con default podemos ejecutar el subcomando alias

# para hacer de la última versión instalada la versión default
; nvm alias default node
default -> node (-> v18.10.0)

# para hacer de la última versión LTS instalada la versión default
; nvm alias default lts/*
default -> lts/* (-> v16.17.1)

Actualizando Node.js

Para actualizar las versiones usamos también el subcomando install. Esta vez agregaremos un argumento extra para indicar que cuando se realice la nueva instalación también se instalen los paquetes usados en la versión que estamos usando actualmente. Por ejemplo:

# actualizar la versión LTS reinstalando los paquetes de la LTS que usamos actualmente
; nvm install --lts --reinstall-packages-from=lts/gallium

# actualizar la última versión de node
; nvm install node --reinstall-packages-from=node

Desinstalado una versión

Finalmente para desinstalar una versión de Node podemos usar el subcomando uninstall. La única consideración es que no podemos desinstalar la versión que estamos usando actualmente, de lo contrario nvm mostrará un error en pantalla.

# desinstalando la última LTS
; nvm uninstall --lts

# desinstalando la última versión
; nvm uninstall node

# desinstalando una versión en específico
; nvm uninstall v16.13.0 

Los comandos anteriores son los que utilizo frecuentemente en mi día a día.

Para ir más allá siempre ejecuto el argumento --help

# 😊
; nvm --help