Cómo detectar automáticamente la versión de NodeJs a utilizar en una carpeta
Lo primero que deberemos hacer es instalar nvm (del inglés Node Version Manager) en nuestro sistema operativo. Una herramienta super útil para cambiar de version de NodeJS a conveniencia, con sencillos comandos de terminal.
Seguidamente, para crear un archivo .nvmrc
que detecte automáticamente la versión de NodeJS a usar y establecer la mencionada versión de NodeJS en el formato correcto, solo es necesario ejecutar el siguiente comando en nuestra terminal:
node -v > .nvmrc
El resultado podría ser este en caso de estar usando la versión 16 de NodeJS, pero puedes cambiarlo según te convenga:
v16.20.2
A continuación, deberás añadir el siguiente snippet de código a tu archivo .bashrc
(si usas Bash como tu terminal predeterminada) o a .zshrc
(si usas Zsh). Una vez añadido, y después de recargar tu terminal, el sistema cambiará automáticamente a la versión indicada en el archivo .nvmrc
siempre que encuentre uno en tu carpeta actual mientras navegas por el sistema de archivos de tu máquina.
# Snippet que cambia automáticamente la versión de node cuando se encuentra un archivo .nvmrc
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Revirtiendo a la versión por defecto de nvm"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
Por último, te dejo unos útiles comandos para recargar tu terminal (según sea Bash o Zsh) sin necesidad de cerrarla y volverla a abrir:
- Para Bash, ejecuta:
source ~/.bashrc
- Para Zsh, ejecuta:
source ~/.zshrc
Deja tu comentario