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
:
$ 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.
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.
# Ouvrir le répertoire personnel et éditer le fichier .zshrc
$ cd
$ vi .zshrc
Voici le code qui doit être écrit dans .zshrc
:
# 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 :
$ 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.