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 20

nvm install --lts — Installiert die neueste LTS-Version (Long-Term Support).

nvm install --lts

nvm install node — Installiert die neueste aktuelle Version.

nvm install node

nvm ls — Listet alle lokal installierten Versionen auf.

nvm ls

nvm ls-remote — Listet alle zur Installation verfügbaren Versionen auf.

nvm ls-remote

nvm ls-remote --lts — Listet nur die verfügbaren LTS-Versionen auf.

nvm ls-remote --lts

nvm uninstall <version> — Deinstalliert eine bestimmte Node.js-Version.

nvm uninstall 18

Versionen wechseln

nvm use <version> — Wechselt zu einer bestimmten installierten Version.

nvm use 20

nvm use --lts — Wechselt zur neuesten installierten LTS-Version.

nvm use --lts

nvm use node — Wechselt zur neuesten installierten Version.

nvm use node

nvm use system — Wechselt zum systemweit installierten Node.js.

nvm use system

nvm current — Zeigt die aktuell aktive Node.js-Version an.

nvm current

Aliasse & Standardwerte

nvm alias default <version> — Legt die Standardversion für neue Shells fest.

nvm alias default 20

nvm 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.0

nvm 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' > .nvmrc

nvm use — Liest die .nvmrc und wechselt zur dort angegebenen Version (automatisch erkannt).

nvm use

nvm install — Installiert die in .nvmrc angegebene Version, falls sie noch fehlt.

nvm install

Werkzeuge

nvm which <version> — Zeigt den Pfad zum Binary einer Node.js-Version an.

nvm which 20

nvm exec <version> <command> — Führt einen Befehl mit einer bestimmten Node-Version aus.

nvm exec 18 node -v

nvm run <version> <script> — Führt ein Skript mit einer bestimmten Node-Version aus.

nvm run 20 app.js

nvm reinstall-packages <version> — Installiert globale npm-Pakete aus einer anderen Version neu.

nvm reinstall-packages 18

nvm cache clear — Leert den nvm-Download-Cache.

nvm cache clear

nvm --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.

Verwandte Kommandos

  • apk – Paketmanager von Alpine Linux
  • apt – komfortables Paket-Frontend für Debian/Ubuntu
  • apt-get – klassisches Paketwerkzeug für Debian/Ubuntu