Skip to content

Configuration de nvmrc

Introduction

Lorsque vous développez plusieurs projets, chaque projet peut nécessiter une version différente de Node.js. Dans de tels cas, nous devons spécifier la version de Node.js pour chaque projet en exécutant les commandes nvm install et nvm use dans le terminal pour installer et changer de versions.

Cependant, exécuter manuellement des commandes dans le terminal à chaque fois devient fastidieux, surtout à mesure que le nombre de projets augmente. Il est facile d'oublier de changer de version ou de passer à la mauvaise version, ce qui peut empêcher les projets de démarrer ou provoquer des erreurs pendant l'exécution.

C'est là que nous avons besoin d'une méthode pour gérer les versions de Node.js et passer automatiquement de l'une à l'autre, et c'est là que .nvmrc entre en jeu.

Qu'est-ce que .nvmrc ?

D'après l'explication ci-dessus, vous pouvez comprendre que le fichier .nvmrc est utilisé pour gérer la version de Node.js pour notre projet. Ce fichier est très simple : il ne contient que du texte représentant une version de Node.js que nvm peut reconnaître, comme v18.12.0.

Comment utiliser le fichier .nvmrc ?

Vous pouvez créer un fichier .nvmrc avec un contenu qui est un numéro de version Node.js ou un autre texte que nvm peut comprendre. Pour plus de détails, vous pouvez taper nvm --help dans le terminal.

Avec le fichier .nvmrc, lorsque vous exécutez des commandes comme nvm use, nvm install, nvm exec, nvm run et nvm which dans le terminal sans spécifier de version, la version spécifiée dans le fichier .nvmrc sera utilisée.

Création d'un fichier .nvmrc

Par exemple, dans le répertoire actuel, pour que nvm spécifie la dernière version de la version 18.12, la dernière version LTS ou la dernière version de Node.js, vous pouvez utiliser la commande echo pour créer un fichier .nvmrc :

bash
$ echo "18.12" > .nvmrc
# Définir la dernière version LTS
$ echo "lts/*" > .nvmrc
# Définir la dernière version
$ echo "node" > .nvmrc

Les commandes comme nvm use parcourront la structure du répertoire vers le haut à partir du répertoire actuel à la recherche du fichier .nvmrc. Cela signifie que l'exécution de commandes comme nvm use dans n'importe quel sous-répertoire d'un répertoire avec un fichier .nvmrc utilisera toujours ce fichier .nvmrc.

Le fichier .nvmrc doit contenir une <version> conforme à ce qui est indiqué dans nvm --help, suivie d'une nouvelle ligne. Les espaces à la fin ne sont pas autorisés, et une nouvelle ligne à la fin est requise.

Comme le montre l'image ci-dessous, il n'y a pas d'espace après v14.21.3, juste un saut de ligne.

nvmrc

Intégration profonde avec les terminaux shell

Vous pouvez utiliser avn pour intégrer profondément avec votre shell et invoquer automatiquement nvm lors du changement de répertoires.

Si vous préférez une solution légère, vous pouvez utiliser la méthode ci-dessous.

Changer automatiquement les versions de Node.js dans le terminal zsh en fonction du fichier .nvmrc

Après avoir ajouté le code suivant à votre $HOME/.zshrc, nvm use sera automatiquement appelé chaque fois que vous entrerez dans un répertoire contenant un fichier .nvmrc. La chaîne dans le fichier .nvmrc indique à nvm quelle version de Node.js utiliser.

bash
# Ouvrir le répertoire personnel et éditer le fichier .zshrc
$ cd
$ vi .zshrc

Voici le code qui doit être écrit dans .zshrc :

bash
# Copiez ce segment de code dans le fichier .zshrc
# placez ceci après l'initialisation de 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

Après avoir édité le fichier .zshrc, exécutez source .zshrc pour que la commande prenne effet :

bash
$ source ~/.zshrc

Dans les projets avec un fichier .nvmrc, lorsque vous ouvrez le terminal intégré dans vscode, vous constaterez que nvm use est automatiquement exécuté, avec une sortie correspondante dans la ligne de commande.

nvmrc

Construit avec VitePress