Skip to content

Gestion de Version Node.js

fnm fournit des fonctionnalités puissantes de gestion de version, vous permettant de basculer facilement entre plusieurs versions de Node.js.

Opérations de Base

Afficher les Versions Installées

bash
fnm list

Exemple de sortie:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * indique la version actuellement utilisée
  • default indique la version par défaut

Afficher la Version Actuelle

bash
fnm current

Changer de Version

bash
# Changer vers une version spécifique
fnm use 20

# Changer vers une version exacte spécifique
fnm use 20.10.0

# Si la version n'est pas installée, installer automatiquement puis changer
fnm use 18 --install-if-missing

Version Par Défaut

Définir la Version Par Défaut

bash
fnm default 20

La version par défaut est:

  • La version utilisée lors du démarrage d'une nouvelle session de terminal
  • La version utilisée lorsqu'il n'y a pas de fichier de version

Afficher la Version Par Défaut

bash
fnm default

Alias de Version

Les alias vous permettent de définir des noms faciles à retenir pour les versions.

Créer un Alias

bash
# Définir un alias pour une version
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

Utiliser un Alias

bash
# Changer de version via un alias
fnm use default
fnm use legacy

Supprimer un Alias

bash
fnm unalias legacy

Changement Automatique de Version

fnm peut automatiquement changer les versions de Node.js en fonction du répertoire du projet.

Activer le Changement Automatique

Ajoutez --use-on-cd à la configuration du Shell:

bash
eval "$(fnm env --use-on-cd)"

Créer un Fichier de Version

Créez un fichier .node-version ou .nvmrc dans la racine du projet:

bash
# Utiliser .node-version (recommandé)
echo "20" > .node-version

# Ou utiliser .nvmrc (compatible avec nvm)
echo "v18.17.0" > .nvmrc

Format du Fichier de Version

.node-version prend en charge les formats suivants:

20           # Version majeure, utiliser la dernière 20.x.x
20.10        # Version mineure, utiliser la dernière 20.10.x
20.10.0      # Version exacte
lts/iron     # Nom de la version LTS

Stratégie d'Analyse des Fichiers de Version

fnm prend en charge deux stratégies d'analyse des fichiers de version:

bash
# local (défaut) - Rechercher uniquement dans le répertoire actuel
fnm env --version-file-strategy=local

# recursive - Rechercher récursivement dans les répertoires parents
fnm env --version-file-strategy=recursive

Support de package.json engines

fnm peut lire le champ engines.node depuis package.json:

json
{
  "engines": {
    "node": ">=18.0.0"
  }
}

Activé par défaut, peut être désactivé via une variable d'environnement:

bash
export FNM_RESOLVE_ENGINES=false

Meilleures Pratiques de Gestion de Version

1. Verrouillage de Version au Niveau du Projet

Créez un fichier .node-version dans chaque projet:

bash
cd my-project
echo "20" > .node-version
fnm install
fnm use

2. Collaboration en Équipe

Ajoutez .node-version à Git:

bash
git add .node-version
git commit -m "chore: add .node-version"

3. Configuration CI/CD

Utilisez fnm dans les environnements CI/CD:

yaml
# GitHub Actions
- name: Installer fnm
  run: curl -fsSL https://fnm.vercel.app/install | bash

- name: Installer Node.js
  run: fnm install && fnm use

4. Développement Multi-Versions

bash
# Installer plusieurs versions
fnm install 20
fnm install 18
fnm install 16

# Définir des alias pour un changement facile
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# Utiliser différentes versions dans différents projets
cd project-new && fnm use current
cd project-old && fnm use legacy

Désinstaller des Versions

bash
# Désinstaller une version spécifique
fnm uninstall 16.20.2

# Désinstaller via un alias (supprimera la version et tous les alias associés)
fnm uninstall old

Problèmes Courants

La Commande node Ne Se Met Pas à Jour Après le Changement de Version

Assurez-vous que la configuration du Shell est correcte:

bash
# Vérifier le chemin node
which node

# Doit pointer vers le répertoire fnm
# ~/.fnm/node-versions/.../bin/node

Le Changement Automatique Ne Fonctionne Pas

  1. Confirmer que --use-on-cd est ajouté à la configuration du Shell
  2. Confirmer que le fichier de version existe
  3. Recharger la configuration du Shell

Priorité des Fichiers de Version

fnm recherche les versions dans l'ordre suivant:

  1. Version spécifiée en ligne de commande
  2. Fichier .node-version
  3. Fichier .nvmrc
  4. engines.node dans package.json
  5. Version par défaut

Liens Connexes