nvm — Node.js-Versionen verwalten
Praxis-Guide zu nvm: mehrere Node.js-Versionen pro Shell und Projekt installieren, wechseln und per .nvmrc pinnen.
nvm (Node Version Manager) verwaltet beliebig viele Node.js-Versionen parallel auf deinem System und lässt dich pro Shell oder pro Projekt zwischen ihnen umschalten. Statt eine global installierte Node-Version zu überschreiben, hältst du etwa Node 18 für ein Altprojekt und Node 22 für ein neues nebeneinander vorrätig. Mit einer .nvmrc-Datei pinnst du die passende Version direkt ins Projekt, sodass alle im Team automatisch dasselbe Node verwenden. Wichtig zu wissen: nvm ist kein Binary, sondern eine Shell-Funktion, die beim Start aus deiner .bashrc oder .zshrc geladen wird – darum wirkt nvm use immer nur in der aktuellen Shell.
Installieren & Versionen auflisten
nvm install <version> — Installiert eine bestimmte Node.js-Version.
nvm install 20nvm install --lts — Installiert die neueste LTS-Version (Long-Term Support).
nvm install --ltsnvm install node — Installiert die neueste aktuelle Version.
nvm install nodenvm ls — Listet alle lokal installierten Versionen auf.
nvm lsnvm ls-remote — Listet alle zur Installation verfügbaren Versionen auf.
nvm ls-remotenvm ls-remote --lts — Listet nur die verfügbaren LTS-Versionen auf.
nvm ls-remote --ltsnvm uninstall <version> — Deinstalliert eine bestimmte Node.js-Version.
nvm uninstall 18Versionen wechseln
nvm use <version> — Wechselt zu einer bestimmten installierten Version.
nvm use 20nvm use --lts — Wechselt zur neuesten installierten LTS-Version.
nvm use --ltsnvm use node — Wechselt zur neuesten installierten Version.
nvm use nodenvm use system — Wechselt zum systemweit installierten Node.js.
nvm use systemnvm current — Zeigt die aktuell aktive Node.js-Version an.
nvm currentAliasse & Standardwerte
nvm alias default <version> — Legt die Standardversion für neue Shells fest.
nvm alias default 20nvm alias default lts/* — Setzt die neueste LTS-Version als Standard.
nvm alias default lts/*nvm alias <name> <version> — Erstellt einen eigenen Alias für eine Version.
nvm alias project-a 18.19.0nvm unalias <name> — Entfernt einen eigenen Alias.
nvm unalias project-a.nvmrc & automatisches Umschalten
echo '<version>' > .nvmrc — Legt eine .nvmrc-Datei an, um die Node-Version für ein Projekt zu pinnen.
echo '20' > .nvmrcnvm use — Liest die .nvmrc und wechselt zur dort angegebenen Version (automatisch erkannt).
nvm usenvm install — Installiert die in .nvmrc angegebene Version, falls sie noch fehlt.
nvm installWerkzeuge
nvm which <version> — Zeigt den Pfad zum Binary einer Node.js-Version an.
nvm which 20nvm exec <version> <command> — Führt einen Befehl mit einer bestimmten Node-Version aus.
nvm exec 18 node -vnvm run <version> <script> — Führt ein Skript mit einer bestimmten Node-Version aus.
nvm run 20 app.jsnvm reinstall-packages <version> — Installiert globale npm-Pakete aus einer anderen Version neu.
nvm reinstall-packages 18nvm cache clear — Leert den nvm-Download-Cache.
nvm cache clearnvm --version — Zeigt die installierte nvm-Version an.
nvm --version Fazit
nvm nimmt dir den Schmerz, Node.js-Versionen von Hand zu jonglieren: Du installierst sie nebeneinander, pinnst pro Projekt eine .nvmrc und wechselst mit einem einzigen nvm use. Behalte im Kopf, dass jede Node-Version ihre eigenen global installierten Pakete hat – nach einem Versionswechsel fehlen dir global installierte CLIs daher zunächst; nvm reinstall-packages hilft beim Übernehmen. Die offizielle Installation läuft über ein curl … | bash-Skript: Solche Pipe-to-Shell-Befehle solltest du grundsätzlich nicht blind ausführen, sondern das Skript vorher ansehen oder gepinnt einbinden. Da nvm eine Shell-Funktion ist und kein Binary, wirkt es nur in Shells, in denen es aus .bashrc/.zshrc geladen wurde – in Cron-Jobs oder CI greift es ohne explizites Sourcing nicht.
Weiterführende Links
- nvm – GitHub-Projekt – Quellcode, Installation und vollständige Dokumentation (englisch)
- Node.js – Versionen & Releases – LTS-Zeitplan und unterstützte Node-Versionen