Node.js Versionsverwaltung
fnm bietet leistungsstarke Versionsverwaltungsfunktionen, mit denen Sie problemlos zwischen mehreren Node.js-Versionen wechseln können.
Grundlegende Operationen
Installierte Versionen anzeigen
fnm listBeispielausgabe:
* v20.10.0 default
v18.19.0
v16.20.2*zeigt die aktuell verwendete Version andefaultzeigt die Standardversion an
Aktuelle Version anzeigen
fnm currentVersion wechseln
# 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-missingStandardversion
Standardversion setzen
fnm default 20Die Standardversion ist:
- Die Version, die bei einer neuen Terminal-Sitzung verwendet wird
- Die Version, die verwendet wird, wenn keine Versionsdatei vorhanden ist
Standardversion anzeigen
fnm defaultVersions-Aliase
Aliase ermöglichen es Ihnen, leicht merkbare Namen für Versionen festzulegen.
Alias erstellen
# Alias für Version setzen
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 oldAlias verwenden
# Version über Alias wechseln
fnm use default
fnm use legacyAlias löschen
fnm unalias legacyAutomatische 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:
eval "$(fnm env --use-on-cd)"Versionsdatei erstellen
Erstellen Sie eine .node-version oder .nvmrc Datei im Projektstammverzeichnis:
# .node-version verwenden (empfohlen)
echo "20" > .node-version
# Oder .nvmrc verwenden (kompatibel mit nvm)
echo "v18.17.0" > .nvmrcVersionsdatei-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-VersionsnameVersionsdatei-Parsing-Strategie
fnm unterstützt zwei Versionsdatei-Parsing-Strategien:
# local (Standard) - Nur im aktuellen Verzeichnis suchen
fnm env --version-file-strategy=local
# recursive - Rekursiv in übergeordneten Verzeichnissen suchen
fnm env --version-file-strategy=recursivepackage.json engines-Unterstützung
fnm kann das engines.node Feld aus package.json lesen:
{
"engines": {
"node": ">=18.0.0"
}
}Standardmäßig aktiviert, kann über Umgebungsvariable deaktiviert werden:
export FNM_RESOLVE_ENGINES=falseVersionsverwaltung Best Practices
1. Projekt-Level Versions-Sperrung
Erstellen Sie in jedem Projekt eine .node-version Datei:
cd mein-projekt
echo "20" > .node-version
fnm install
fnm use2. Team-Zusammenarbeit
.node-version zu Git hinzufügen:
git add .node-version
git commit -m "chore: .node-version hinzufügen"3. CI/CD-Konfiguration
fnm in CI/CD-Umgebungen verwenden:
# GitHub Actions
- name: fnm installieren
run: curl -fsSL https://fnm.vercel.app/install | bash
- name: Node.js installieren
run: fnm install && fnm use4. Multi-Version-Entwicklung
# 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 legacyVersionen deinstallieren
# Bestimmte Version deinstallieren
fnm uninstall 16.20.2
# Über Alias deinstallieren (löscht Version und alle zugehörigen Aliase)
fnm uninstall oldHäufige Probleme
node Befehl aktualisiert nach Versionswechsel nicht
Stellen Sie sicher, dass die Shell-Konfiguration korrekt ist:
# node Pfad prüfen
which node
# Sollte auf fnm Verzeichnis zeigen
# ~/.fnm/node-versions/.../bin/nodeAutomatische Umschaltung funktioniert nicht
- Bestätigen Sie, dass
--use-on-cdzur Shell-Konfiguration hinzugefügt wurde - Bestätigen Sie, dass Versionsdatei vorhanden ist
- Shell-Konfiguration neu laden
Versionsdatei-Priorität
fnm sucht Versionen in der folgenden Reihenfolge:
- In der Befehlszeile angegebene Version
.node-versionDatei.nvmrcDateipackage.jsonengines.node- Standardversion
Verwandte Links
- Node.js installieren - Installationsanleitung
- Befehlsreferenz - Alle Befehlsdetails
- Download-Verwaltung - Download-bezogene Funktionen