Cómo manejar la NVM en Linux, Mac y Windows

Aprende cómo usar NVM de Node para administrar fácilmente tus versiones de NodeJS en varios proyectos

Muchas veces cuando trabajamos en Node, tenemos que usar múltiples versiones para diferentes proyectos porque unos ya están viejos otros no, porque han ido avanzando las versiones de la nube pero la nuestra se ha quedado atrás y hay que ir haciendo la actualización y revisar cómo funciona en la versión nueva sin dejar la vieja atrás porque aún hay que trabajar en ella o cosas así, ustedes me entienden…

Y es por eso que me he dado a la tarea de traerles esta guía / tutorial de cómo hacerlo en Linux/Mac y WSL, la verdad es que no lo haré en la consola regular de Windows porque esto ya es solo el proceso de instalar, lo demás es “lo mismo” (así que consideramos WSL como el medio genérico de Windows para los 3) y los comandos de NVM

Pero antes de empezar, ¿qué diablos significa NVM?, bueno significa “Node Version Manager” o “Administrador de Versiones de Node” y encuentran su repositorio aquí:

https://github.com/nvm-sh/nvm

La verdad es que no me he fijado muy bien cómo se instale en Windows así que eso ya es tarea suya, pero pensaremos que usan la versión de WSL que es lo más común últimamente para estos casos de NVM y vale la pena mencionar que no hablaremos del .nvmrc para que los proyectos hagan uso de NVM “solos”.

Para instalarlo ejecutamos el siguiente comando (requiere cURL, nuevamente, busquen cómo instalarlo aunque casi siempre viene preinstalado o es algo de la vieja escuela tipo sudo apt install curl bastante fácil):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

En Linux/Mac quizá ocupen modo sudo porque agrega a los exports… si el comando nvm directo no está disponible en la sesión actual pueden reiniciar la consola o asignarlo con el siguiente comando:

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"

Y ahora sí, ya está disponible, pero deben tratar de mantener el source dentro de sus rutas… si tienen problemas después de cerrar la consola revisen que sí se haya agregado la ruta a su manejador de consola, en el repositorio encuentran más información o déjame un comentario y trataré de ayudarte. Si todo fue bien podríamos correr nvm y veremos lo siguiente:

Ya tenemos listo nvm para trabajar.

Ahora, lo primero, ¿cómo instalo mis primeras versiones de Node?, bueno para esto existe el comando: nvm install ${node} donde ${node} es la versión que queremos instalar por ejemplo pensemos que ocupamos una versión “viejita” (la 16.14.0 específicamente), ejecutaríamos el comando:

nvm install 16.14.0

Y listo, NVM hará el proceso, si hacemos un node -v veremos que nuestra versión actual es la 16.14.0 por ejemplo:

Ahora, nvm siempre mantiene un registro de nuestra versión original de Node que se llama system, para cambiar entre versiones podemos usar:

nvm use ${node}

Mismo caso superior, reemplazamos ${node} por la versión, o podemos usar system para usar la versión original:

nvm use system

Por ejemplo yo en esta Mac empecé en la versión 14 por un proyecto Legacy que fue el primero que trabajé y ahora estoy usando Node 16 y Node 20 en otros proyectos así que si me regreso a system ahora tengo la versión original

Si queremos saber qué versiones tenemos instaladas podemos usar:

nvm ls

Y veríamos algo como lo siguiente:

Si una versión de Node que ya no ocupamos la queremos remover usamos el comando uninstall de la siguiente forma:

nvm uninstall ${node}

Y el mismo caso, reemplazamos ${node} por la versión que queremos remover (menos system(?)), además, podemos crear alias para por ejemplo ponerle un nombre a una versión de Node específica para un proyecto por ejemplo:

nvm alias ${nombreDelAlias} ${node}

Y simplemente reemplazamos el ${nombreDelAlias} por el nombre que queramos como “node16” para no tener que acordarnos de las versiones específicas y después podemos ejecutar el comando de nvm use con el alias:

Por último tenemos nvm run y nvm exec , el primero nos permite correr 1 archivo específico con la versión específica que queramos, y el segundo nos permite ejecutar un comando con la versión específica que queramos por ejemplo:

nvm run node16 ejemplo.js
nvm exec node16 node -v

El primero ejecutaría el archivo: ejemplo.js, usando la versión de node 16 recordemos que podemos usar alias, o las versiones específicas que tenemos instaladas. Y el segundo si lo corremos ejecutaría el comando node -v y en este caso mostraría en pantalla la versión 16.14.0 ejemplo:

Y eso fue todo, quizá en otro tutorial, podamos revisar cómo manejar el archivo .nvmrc y marcar la configuración de engine en el package.json para siempre usar las versiones específicas. Nos vemos en el siguiente tutorial.

¿Cuál es tu reacción?
+1
0
+1
0
+1
0
+1
0
+1
1
Total
0
Shares
Publicación anterior

PlayStation Project Q es la nueva portátil de Sony centrada en el cloud gaming

Siguiente Publicación

Di no a SCRUM

Publicaciones Relacionadas