Skip to content

Node.js Versionsverwaltung

fnm bietet leistungsstarke Versionsverwaltungsfunktionen, mit denen Sie problemlos zwischen mehreren Node.js-Versionen wechseln können.

Grundlegende Operationen

Installierte Versionen anzeigen

bash
fnm list

Beispielausgabe:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * zeigt die aktuell verwendete Version an
  • default zeigt die Standardversion an

Aktuelle Version anzeigen

bash
fnm current

Version wechseln

bash
# Zu bestimmter Version wechseln
fnm use 20

# Zu bestimmter exakter Version wechseln
fnm use 20.10.0

# Wenn Version nicht installiert ist, automatisch installieren und wechseln
fnm use 18 --install-if-missing

Standardversion

Standardversion setzen

bash
fnm default 20

Die Standardversion ist:

  • Die Version, die bei einer neuen Terminal-Sitzung verwendet wird
  • Die Version, die verwendet wird, wenn keine Versionsdatei vorhanden ist

Standardversion anzeigen

bash
fnm default

Versions-Aliase

Aliase ermöglichen es Ihnen, leicht merkbare Namen für Versionen festzulegen.

Alias erstellen

bash
# Alias für Version setzen
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

Alias verwenden

bash
# Version über Alias wechseln
fnm use default
fnm use legacy

Alias löschen

bash
fnm unalias legacy

Automatische Versionsumschaltung

fnm kann Node.js-Versionen basierend auf dem Projektverzeichnis automatisch umschalten.

Automatische Umschaltung aktivieren

Fügen Sie --use-on-cd zur Shell-Konfiguration hinzu:

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

Versionsdatei erstellen

Erstellen Sie eine .node-version oder .nvmrc Datei im Projektstammverzeichnis:

bash
# .node-version verwenden (empfohlen)
echo "20" > .node-version

# Oder .nvmrc verwenden (kompatibel mit nvm)
echo "v18.17.0" > .nvmrc

Versionsdatei-Format

.node-version unterstützt die folgenden Formate:

20           # Hauptversion, verwende neueste 20.x.x
20.10        # Nebenversion, verwende neueste 20.10.x
20.10.0      # Exakte Version
lts/iron     # LTS-Versionsname

Versionsdatei-Parsing-Strategie

fnm unterstützt zwei Versionsdatei-Parsing-Strategien:

bash
# local (Standard) - Nur im aktuellen Verzeichnis suchen
fnm env --version-file-strategy=local

# recursive - Rekursiv in übergeordneten Verzeichnissen suchen
fnm env --version-file-strategy=recursive

package.json engines-Unterstützung

fnm kann das engines.node Feld aus package.json lesen:

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

Standardmäßig aktiviert, kann über Umgebungsvariable deaktiviert werden:

bash
export FNM_RESOLVE_ENGINES=false

Versionsverwaltung Best Practices

1. Projekt-Level Versions-Sperrung

Erstellen Sie in jedem Projekt eine .node-version Datei:

bash
cd mein-projekt
echo "20" > .node-version
fnm install
fnm use

2. Team-Zusammenarbeit

.node-version zu Git hinzufügen:

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

3. CI/CD-Konfiguration

fnm in CI/CD-Umgebungen verwenden:

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

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

4. Multi-Version-Entwicklung

bash
# Mehrere Versionen installieren
fnm install 20
fnm install 18
fnm install 16

# Aliase für einfaches Wechseln setzen
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# Unterschiedliche Versionen in verschiedenen Projekten verwenden
cd projekt-neu && fnm use current
cd projekt-alt && fnm use legacy

Versionen deinstallieren

bash
# Bestimmte Version deinstallieren
fnm uninstall 16.20.2

# Über Alias deinstallieren (löscht Version und alle zugehörigen Aliase)
fnm uninstall old

Häufige Probleme

node Befehl aktualisiert nach Versionswechsel nicht

Stellen Sie sicher, dass die Shell-Konfiguration korrekt ist:

bash
# node Pfad prüfen
which node

# Sollte auf fnm Verzeichnis zeigen
# ~/.fnm/node-versions/.../bin/node

Automatische Umschaltung funktioniert nicht

  1. Bestätigen Sie, dass --use-on-cd zur Shell-Konfiguration hinzugefügt wurde
  2. Bestätigen Sie, dass Versionsdatei vorhanden ist
  3. Shell-Konfiguration neu laden

Versionsdatei-Priorität

fnm sucht Versionen in der folgenden Reihenfolge:

  1. In der Befehlszeile angegebene Version
  2. .node-version Datei
  3. .nvmrc Datei
  4. package.json engines.node
  5. Standardversion