Drupal Pills
Joan Galtés i Moreno

Com detectar automàticament la versió de NodeJS a utilitzar a una carpeta

El primer que haurem de fer és instal·lar nvm (de l'anglès Node Version Manager) al nostre sistema operatiu. Una eina molt útil per canviar de versió de NodeJS segons convingui, amb senzills comandos de terminal.

Seguidament, per crear un arxiu .nvmrc que detecti automàticament la versió de NodeJS a emprar i establir l'esmentada versió de NodeJS amb el format correcte, només cal executar la següent comanda a la nostra terminal:

node -v > .nvmrc

El resultat podria ser aquest en cas d'estar fent servir la versió 16 de NodeJS, però el podeu canviar segons us convingui:

v16.20.2

A continuació, haureu d'afegir el següent snippet de codi al vostre arxiu .bashrc (si feu servir Bash com la vostra terminal predeterminada) o a .zshrc (si feu servir Zsh). Un cop afegit, i un cop recarregada la vostra terminal, el sistema canviarà automàticament a la versió indicada a l'arxiu .nvmrc sempre que en trobi un a la vostra carpeta actual mentre navegueu pel sistema de fitxers del vostre maquinari.

# Snippet que canvia automàticament la versió de node quan es troba un arxiu .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 "Revertint a la versió per defecte de nvm"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

Per últim, us deixo unes útils comandes per recarregar la vostra terminal (segons sigui Bash o Zsh) sense haver de tancar-la i tornar-la a obrir:

  • Per a Bash, executeu:
source ~/.bashrc
  • Per a Zsh, executeu:
source ~/.zshrc

Sobre l'autor/a

Joan Galtés i Moreno

Desenvolupador full-stack, especialitzat en Drupal des de 2008. M'agrada concebre i desenvolupar tant el back-end com el front-end en tots els meus projectes. Entusiasta de les noves tecnologies, amb un bon domini de PHP, MySQL, Git, Javascript, HTML 5, SASS i CSS 3, posant molt d'èmfasi en la usabilitat i l'accessibilitat de tot allò que desenvolupo.

Comparteix

Deixa el teu comentari