General
Muchas veces nos encontramos trabajando en distintos proyectos, que usan diferentes versiones de Node.js (tanto front-end como back-end). Es por eso que resulta útil automatizar este proceso incluyendo un archivo .nvmrc
en cada proyecto y haciendo uso de un hook en nuestra consola.
Primero vamos a editar el archivo ~/.zshrc
usando el comando
nano ~/.zshrc
O bien abriéndolo con nuestro editor de preferencia (Visual Studio Code, etc.)
Luego, al final del archivo, vamos a agregar el siguiente contenido:
autoload -U add-zsh-hook
use_nvmrc_version_automatically() {
if [[ -f .nvmrc ]]; then
echo ".nvmrc FOUND now INSTALLING and USING $(cat .nvmrc)"
nvm install $(cat .nvmrc) && nvm use $(cat .nvmrc)
fi
}
add-zsh-hook chpwd use_nvmrc_version_automatically
use_nvmrc_version_automatically
Yo preferí quitar la parte de
nvm install $(cat .nvmrc) &&
, ya que siempre intenta instalar la versión encontrada, aún cuando ya esté instalada en nuestro sistema, lo cual degrada un poco la performance. Elijo instalarla yo manualmente en caso de ser necesario, pero esto queda a gusto de cada uno.
Guardamos y cerramos el archivo, y finalmente ejecutamos source ~/.zshrc
en la consola ya abierta o bien, cerramos todas las ventanas de la consola que tengamos abiertas y al abrir una nueva ventana, esto ya debería estar funcionando correctamente.