Skip to content

Configurazione di nvmrc

Introduzione

Durante lo sviluppo di più progetti, ogni progetto potrebbe richiedere una versione diversa di Node.js. In questi casi, dobbiamo specificare la versione di Node.js per ogni progetto eseguendo i comandi nvm install e nvm use nel terminale per installare e cambiare versioni.

Tuttavia, eseguire manualmente i comandi nel terminale ogni volta diventa macchinoso, specialmente man mano che il numero di progetti aumenta. È facile dimenticare di cambiare versione o passare alla versione sbagliata, il che può causare il mancato avvio dei progetti o errori durante l'esecuzione.

Questo è dove abbiamo bisogno di un metodo per gestire le versioni di Node.js e passare automaticamente tra di esse, ed è qui che entra in gioco .nvmrc.

Cos'è .nvmrc?

Dalla spiegazione sopra, puoi capire che il file .nvmrc viene utilizzato per gestire la versione di Node.js per il nostro progetto. Questo file è molto semplice: contiene solo testo che rappresenta una versione di Node.js che nvm può riconoscere, come v18.12.0.

Come usare il file .nvmrc?

Puoi creare un file .nvmrc con contenuto che sia un numero di versione di Node.js o altro testo che nvm può comprendere. Per i dettagli, puoi digitare nvm --help nel terminale.

Con il file .nvmrc, quando esegui comandi come nvm use, nvm install, nvm exec, nvm run e nvm which nel terminale senza specificare una versione, verrà utilizzata la versione specificata nel file .nvmrc.

Creazione di un file .nvmrc

Ad esempio, nella directory corrente, per far specificare a nvm l'ultima versione di 18.12, l'ultima versione LTS o l'ultima versione di Node.js, puoi usare il comando echo per creare un file .nvmrc:

bash
$ echo "18.12" > .nvmrc
# Imposta l'ultima versione LTS
$ echo "lts/*" > .nvmrc
# Imposta l'ultima versione
$ echo "node" > .nvmrc

Comandi come nvm use attraverseranno la struttura delle directory verso l'alto dalla directory corrente cercando il file .nvmrc. Ciò significa che eseguire comandi come nvm use in qualsiasi sottodirectory di una directory con un file .nvmrc utilizzerà comunque quel file .nvmrc.

Il file .nvmrc deve contenere una <version> conforme a quanto elencato in nvm --help, seguita da una nuova riga. Gli spazi finali non sono consentiti e una nuova riga finale è obbligatoria.

Come mostrato nell'immagine qui sotto, non c'è spazio dopo v14.21.3, solo un'interruzione di riga.

nvmrc

Integrazione profonda con i terminali shell

Puoi usare avn per integrarti profondamente con la tua shell e invocare automaticamente nvm quando cambi directory.

Se preferisci una soluzione leggera, puoi utilizzare il metodo seguente.

Cambiare automaticamente le versioni di Node.js nel terminale zsh in base al file .nvmrc

Dopo aver aggiunto il seguente codice al tuo $HOME/.zshrc, nvm use verrà chiamato automaticamente ogni volta che entri in una directory contenente un file .nvmrc. La stringa nel file .nvmrc dice a nvm quale versione di Node.js utilizzare.

bash
# Aprire la directory home e modificare il file .zshrc
$ cd
$ vi .zshrc

Questo è il codice che deve essere scritto in .zshrc:

bash
# Copia questo segmento di codice nel file .zshrc
# inseriscilo dopo l'inizializzazione di nvm!
autoload -U add-zsh-hook
load-nvmrc() {
  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" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

Dopo aver modificato il file .zshrc, esegui source .zshrc per rendere effettivo il comando:

bash
$ source ~/.zshrc

Nei progetti con un file .nvmrc, quando apri il terminale integrato in vscode, scoprirai che nvm use viene eseguito automaticamente, con il relativo output nella riga di comando.

nvmrc

Creato con VitePress