15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
18.10.2024

Wie man Node.js installiert: Ein vollständiger technischer Leitfaden für alle Plattformen

Node.js ist eine quelloffene, plattformübergreifende JavaScript-Laufzeitumgebung, die auf Chromes V8-Engine aufbaut und JavaScript-Code außerhalb einer Browserumgebung ausführt. Sein nicht-blockierendes, ereignisgesteuertes I/O-Modell macht es zur dominanten Wahl für den Aufbau von High-Throughput-APIs, Echtzeit-Anwendungen, Microservices und serverseitigen Tools. Die korrekte Installation von Node.js – mit der richtigen Methode für Ihr Betriebssystem und Ihren Workflow – ist die Grundlage einer stabilen, reproduzierbaren Entwicklungsumgebung.

Dieser Leitfaden behandelt alle wichtigen Installationswege: offizielle Installer, betriebssystemeigene Paketmanager, die NodeSource-Binärdistributionen und nvm (Node Version Manager). Er befasst sich auch mit Versionsverwaltung, globaler Pakethygiene und Überlegungen für Produktionsserver, die die meisten Tutorials vollständig auslassen.

Die richtige Installationsmethode wählen

Bevor Sie einen einzigen Befehl ausführen, sollten Sie verstehen, was jede Methode tatsächlich bietet – denn die falsche Wahl verursacht später echte Betriebsprobleme.

MethodeAm besten geeignet fürVersionsflexibilitätRoot erforderlichHinweise
Offizieller `.pkg` / `.msi`-InstallerSchnelle lokale Einrichtung, EinsteigerNur eine VersionJaVerschmutzt den System-PATH; Versionswechsel schwierig
OS-Paketmanager (`apt`, `brew`, `yum`)Systemweite Installationen, CI-ServerBegrenztJaLiefert oft veraltete Versionen
NodeSource-Binär-RepositoryLinux-Server, vorhersehbares LTS-PinningPro InstallationJaVon NodeSource gepflegt; gut für Produktion
`nvm` (Node Version Manager)Multi-Projekt-EntwicklungVollständig, pro ShellNeinGoldstandard für Entwickler-Workstations
`fnm` (Fast Node Manager)Leistungssensitive CI-PipelinesVollständigNeinRust-basiert, deutlich schneller als nvm
Docker / Container-ImageIsolierte, reproduzierbare BuildsVollständig, pro ContainerAbhängigAm besten für Microservices und CI/CD

Wichtige Entscheidungsregel: Verwenden Sie auf einer Entwickler-Workstation immer nvm oder fnm. Auf einem Linux-Produktionsserver verwenden Sie das NodeSource-Repository oder ein Container-Image. Verwenden Sie niemals das Node.js-Paket des Standard-OS-Paketmanagers unter Ubuntu/Debian – es liefert routinemäßig Versionen, die Jahre hinter dem aktuellen LTS zurückliegen.

Node.js unter Linux installieren

Linux ist der Ort, an dem die meisten Node.js-Produktionsworkloads tatsächlich laufen. Hier ist es wichtiger als anderswo, dies richtig zu machen. Wenn Sie in einer VPS Hosting-Umgebung bereitstellen, gelten die folgenden Methoden direkt für Ihren Remote-Server.

Methode 1: NodeSource-Binärdistributionen (Empfohlen für Server)

NodeSource pflegt aktuelle, signierte .deb– und .rpm-Pakete, die die Node.js LTS- und Current-Release-Linien präzise verfolgen. Dies ist der zuverlässigste Ansatz für Linux-Produktionsserver.

Ubuntu / Debian:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Fedora / CentOS / RHEL / Rocky Linux:

curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs

Überprüfen Sie nach der Installation sowohl die Laufzeitumgebung als auch den mitgelieferten Paketmanager:

node -v
npm -v

Kritische Falle: Das curl | bash-Muster führt ein Remote-Skript als Root aus. In sicherheitssensitiven Umgebungen laden Sie das Skript zunächst herunter, prüfen Sie es und führen Sie es dann aus:

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejs

Methode 2: nvm — Node Version Manager (Empfohlen für Entwickler)

nvm installiert Node.js vollständig in Ihrem Home-Verzeichnis (~/.nvm), erfordert kein sudo und ermöglicht den Versionswechsel pro Projekt oder pro Shell-Sitzung. Dies ist das richtige Werkzeug für jede Workstation oder jeden Multi-Tenant-Server, auf dem verschiedene Anwendungen unterschiedliche Node.js-Versionen benötigen.

nvm installieren:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Das Installationsprogramm fügt die notwendige Shell-Initialisierung an ~/.bashrc, ~/.zshrc oder ~/.profile an. Laden Sie Ihre Shell neu:

source ~/.bashrc

Die neueste LTS-Version installieren:

nvm install --lts

Eine bestimmte Version nach Nummer installieren:

nvm install 20.14.0

Zwischen installierten Versionen wechseln:

nvm use 18
nvm use 20

Einen dauerhaften Standard für neue Shell-Sitzungen festlegen:

nvm alias default 20

Alle lokal installierten Versionen auflisten:

nvm ls

Die aktive Version überprüfen:

node -v
npm -v

Sonderfall — .nvmrc-Dateien: Platzieren Sie eine .nvmrc-Datei in Ihrem Projektstamm, die nur den Versionsstring enthält (z. B. 20.14.0). Das Ausführen von nvm use in diesem Verzeichnis wählt automatisch die richtige Version aus. Dies ist in Teamumgebungen unerlässlich, wo Versionsdrift subtile Fehler verursacht.

echo "20.14.0" > .nvmrc
nvm use

Methode 3: System-Paketmanager (Akzeptabel für Tooling, nicht für Produktion)

Die Standard-apt– oder dnf-Repositories liefern häufig veraltete Node.js-Versionen. Verwenden Sie dies nur für unkritisches Tooling:

sudo apt-get update
sudo apt-get install -y nodejs npm

Unter Fedora / RHEL 9+:

sudo dnf install nodejs

Node.js unter macOS installieren

Methode 1: Homebrew (Empfohlen)

Homebrew ist der De-facto-Paketmanager für macOS-Entwicklungsumgebungen. Falls Homebrew noch nicht installiert ist, folgen Sie den Anweisungen unter brew.sh.

brew install node

Um eine bestimmte Hauptversion zu installieren (z. B. Node.js 20 LTS):

brew install node@20
brew link --overwrite node@20

Überprüfen:

node -v
npm -v

Homebrew-Falle: brew upgrade node aktualisiert auf die neueste Version, was Projekte, die an eine ältere Version gebunden sind, beschädigen kann. Wenn Sie mehrere Projekte verwalten, verwenden Sie auch auf macOS nvm — der Workflow ist identisch mit Linux.

Methode 2: nvm unter macOS

Die nvm-Installations- und Verwendungsbefehle sind identisch mit Linux. macOS-Benutzer mit Zsh (Standard seit Catalina) sollten nach der Installation bestätigen, dass ~/.zshrc den nvm-Initialisierungsblock enthält:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

Methode 3: Offizieller .pkg-Installer

Laden Sie den .pkg-Installer von nodejs.org herunter, führen Sie ihn aus und folgen Sie dem Assistenten. Dies ist der einfachste Weg für Benutzer, die eine einzelne Node.js-Version benötigen und keine Pläne haben, zu wechseln. Öffnen Sie nach der Installation das Terminal und bestätigen Sie:

node -v
npm -v

Node.js unter Windows installieren

Methode 1: Offizieller .msi-Installer

Laden Sie den Windows-Installer (.msi) von nodejs.org herunter. Wählen Sie den LTS-Build für produktionsnahe Arbeit oder Current zum Experimentieren mit den neuesten Funktionen. Der Installer registriert Node.js automatisch im System-PATH.

Öffnen Sie nach der Installation die Eingabeaufforderung oder PowerShell und überprüfen Sie:

node -v
npm -v

Wichtig: Während des Installer-Assistenten gibt es einen optionalen Schritt zur Installation von Chocolatey und Build-Tools für native Module (C++-Addons). Aktivieren Sie dies, wenn Ihre Projektabhängigkeiten Pakete wie bcrypt, sharp oder node-gyp-abhängige Module enthalten. Das Überspringen verursacht später kryptische Build-Fehler.

Methode 2: Chocolatey

Chocolatey ist ein Windows-Paketmanager, der skriptgesteuerte, wiederholbare Installationen ermöglicht – wertvoll für die Bereitstellung von Entwicklermaschinen.

Öffnen Sie eine erhöhte (Administrator-)Eingabeaufforderung oder PowerShell:

choco install nodejs-lts

Überprüfen:

node -v
npm -v

Methode 3: nvm-windows

Beachten Sie, dass nvm für Linux/macOS nicht unter Windows läuft. Das Windows-Äquivalent ist nvm-windows, ein separates Projekt mit ähnlicher Oberfläche.

Laden Sie den Installer von der nvm-windows-GitHub-Releases-Seite herunter. Nach der Installation:

nvm install lts
nvm use lts
node -v

Windows Subsystem for Linux (WSL2): Entwickler, die ernsthaft mit Node.js unter Windows arbeiten, sollten WSL2 mit Ubuntu ernsthaft in Betracht ziehen. Innerhalb von WSL2 funktioniert die Linux-nvm-Installation identisch wie auf nativem Linux, und die Entwicklungserfahrung ist deutlich konsistenter mit Produktionsserverumgebungen.

LTS vs. Current verstehen: Welche Version installieren

Node.js folgt einem vorhersehbaren Release-Zeitplan, der direkt beeinflusst, welche Version Sie bereitstellen sollten.

Release-TypRhythmusSupport-DauerAnwendungsfall
**LTS (Long Term Support)**Gerade Hauptversionen (18, 20, 22)30 Monate gesamt (12 Aktiv + 18 Wartung)Produktionsanwendungen, Enterprise-Workloads
**Current**Ungerade Hauptversionen (19, 21, 23)Nur 6 MonateFeature-Tests, Bibliotheksautoren
**Maintenance LTS**Alternde LTS-ReleasesNur SicherheitskorrekturenLegacy-Systeme in der Migration

Faustregel: Stellen Sie in der Produktion immer LTS bereit. Verwenden Sie Current nur in isolierten Entwicklungsumgebungen, wenn Sie die Kompatibilität mit kommenden Node.js-Funktionen testen müssen.

Node.js aktuell halten

Veraltete Node.js-Versionen setzen Ihre Anwendung bekannten V8-Engine-Schwachstellen, veralteten TLS-Konfigurationen und fehlerhafter Abhängigkeitskompatibilität aus. Behandeln Sie Node.js-Upgrades als Sicherheitswartung, nicht als optionale Verbesserungen.

Mit nvm (alle Plattformen):

nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default node

Der nvm reinstall-packages-Befehl migriert global installierte Pakete von der alten Version zur neuen – ein Detail, das die meisten Leitfäden auslassen und das erheblich Zeit spart.

Mit NodeSource unter Debian/Ubuntu:

sudo apt-get update && sudo apt-get upgrade nodejs

Mit Homebrew unter macOS:

brew update && brew upgrade node

Mit Chocolatey unter Windows:

choco upgrade nodejs-lts

Globale npm-Pakete verwalten

Globale npm-Pakete installieren CLI-Tools, die systemweit zugänglich sind. Halten Sie die globale Installationsliste minimal – projektspezifische Tools gehören in devDependencies, nicht in globale Installationen, um reproduzierbare Builds in allen Umgebungen sicherzustellen.

Ein globales Paket installieren:

npm install -g yarn
npm install -g pm2
npm install -g typescript

Alle global installierten Pakete auflisten:

npm list -g --depth=0

Ein globales Paket entfernen:

npm uninstall -g yarn

Häufige produktionsrelevante globale Pakete:

  • pm2 — Prozessmanager für Node.js-Anwendungen; verwaltet Clustering, automatischen Neustart und Log-Management auf Linux-Servern
  • typescript — TypeScript-Compiler (tsc)
  • nodemon — Entwicklungs-Datei-Watcher, der den Node.js-Prozess bei Codeänderungen automatisch neu startet
  • dotenv-cli — Lädt .env-Dateien für umgebungsspezifische Konfiguration

nvm und globale Pakete: Wenn Sie mit nvm die Node.js-Version wechseln, sind global installierte Pakete der vorherigen Version nicht automatisch verfügbar. Installieren Sie sie entweder neu oder verwenden Sie nvm reinstall-packages <previous-version>, um sie zu migrieren.

Nach der Installation: npm für Produktionsumgebungen konfigurieren

Eine saubere Node.js-Installation erfordert einige zusätzliche Konfigurationsschritte, bevor sie produktionsbereit ist.

npm-Registry festlegen (optional, für private Registries oder Mirrors):

npm config set registry https://registry.npmjs.org/

npm-Cache-Verzeichnis konfigurieren (relevant auf Servern mit begrenztem /tmp-Speicherplatz):

npm config set cache /path/to/custom/cache

Generierung von package-lock.json deaktivieren (nur wenn Ihr Team ausschließlich yarn.lock verwendet):

npm config set package-lock false

Node.js-Umgebungsvariable für Produktion setzen:

export NODE_ENV=production

Fügen Sie dies zu /etc/environment oder der systemd-Unit-Datei Ihrer Anwendung auf Linux-Servern hinzu, um sicherzustellen, dass Express.js, Next.js und andere Frameworks ihre Produktionsoptimierungen aktivieren.

Wenn Sie Node.js-Anwendungen auf einem Dedicated Server betreiben, konfigurieren Sie pm2 als systemd-Dienst, um sicherzustellen, dass Ihre Anwendung nach Neustarts wieder startet:

pm2 start app.js --name "my-app"
pm2 startup systemd
pm2 save

Node.js hinter einem Reverse Proxy betreiben

Auf Produktionsservern sollten Node.js-Anwendungen niemals direkt auf Port 80 oder 443 exponiert werden. Verwenden Sie Nginx oder Apache als Reverse Proxy und terminieren Sie TLS auf der Proxy-Ebene. Dies ist eine kritische Architekturentscheidung, die der Installationsschritt direkt ermöglicht.

Eine minimale Nginx-Konfiguration für eine Node.js-App, die auf Port 3000 läuft:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Kombinieren Sie dies mit einem gültigen TLS-Zertifikat. SSL-Zertifikate sind für jede Node.js-Anwendung, die Benutzerdaten, Authentifizierungstoken oder API-Anfragen verarbeitet, unerlässlich – nicht optional. Let’s Encrypt über certbot ist die standardmäßige kostenlose Option; kommerzielle Zertifikate sind für Enterprise-Deployments geeignet.

Node.js auf Shared Hosting vs. VPS

Eine häufig gestellte Frage: Kann Node.js auf Shared Hosting laufen?

Standard-Shared Web Hosting-Umgebungen unterstützen Node.js in keiner sinnvollen Weise. Shared Hosting ist für PHP-Anwendungen konzipiert und bietet keinen Shell-Zugang, keine persistente Prozessverwaltung oder die Möglichkeit, an benutzerdefinierte Ports zu binden – alles, was Node.js benötigt.

Für jedes echte Node.js-Deployment benötigen Sie mindestens einen VPS Hosting-Plan. Ein VPS gibt Ihnen Root-Zugang, einen persistenten Prozessmanager wie pm2 und volle Kontrolle über die Node.js-Version und Laufzeitkonfiguration. Wenn Sie neben Ihrer Node.js-Umgebung ein verwaltetes Control Panel benötigen, bietet ein VPS mit cPanel einen Mittelweg zwischen reinem VPS-Zugang und verwaltetem Hosting.

Für rechenintensive Node.js-Workloads – Machine-Learning-Inferenz, Video-Transcoding oder groß angelegte Datenverarbeitung – reicht ein Standard-VPS möglicherweise nicht aus. GPU Hosting bietet die Hardwarebeschleunigung, die CPU-gebundene Node.js-Prozesse allein nicht erreichen können.

Technische Checkliste der wichtigsten Erkenntnisse

Verwenden Sie dies als Vorbereitungs-Checkliste vor der Bereitstellung:

  • Versionsauswahl: Bestätigen Sie, dass Sie ein aktives LTS-Release ausführen (node -v sollte eine gerade Hauptversionsnummer im aktiven Support-Fenster zurückgeben)
  • Installationsmethode entspricht der Umgebung: nvm auf Entwicklermaschinen; NodeSource oder Container auf Servern
  • npm-Version ist aktuell: Führen Sie npm install -g npm@latest nach der Installation von Node.js aus – das mitgelieferte npm ist oft nicht das neueste
  • NODE_ENV ist gesetzt: Überprüfen Sie, dass echo $NODE_ENV in allen Serverumgebungen production zurückgibt
  • Prozessmanager ist konfiguriert: pm2 list zeigt Ihre laufende Anwendung und pm2 startup wurde ausgeführt
  • Reverse Proxy ist vorhanden: Node.js ist nicht direkt auf Port 80/443 exponiert
  • TLS wird am Proxy terminiert: Gültiges Zertifikat ist installiert und HTTPS-Weiterleitungen werden erzwungen
  • Globale Paketliste ist minimal: npm list -g --depth=0 zeigt nur wesentliche CLI-Tools
  • .nvmrc ist im Repository eingecheckt: Stellt sicher, dass alle Teammitglieder und CI-Pipelines dieselbe Node.js-Version verwenden
  • Sicherheitsupdates sind automatisiert: Ein Cron-Job oder eine CI-Pipeline prüft monatlich auf neue LTS-Patches

FAQ

Was ist der Unterschied zwischen Node.js LTS und Current, und welches sollte ich installieren?

LTS (Long Term Support)-Releases sind gerade Hauptversionen (18, 20, 22), die 30 Monate lang mit Sicherheits- und Stabilitäts-Patches unterstützt werden. Current-Releases sind ungerade Hauptversionen, die nur 6 Monate unterstützt werden. Installieren Sie LTS für jede Produktions- oder Team-Entwicklungsarbeit. Verwenden Sie Current nur für kurzfristige Feature-Experimente.

Warum zeigt nvm nach der Installation „Befehl nicht gefunden”?

Das nvm-Installationsprogramm fügt Initialisierungscode an die RC-Datei Ihrer Shell an (~/.bashrc oder ~/.zshrc), aber die aktuelle Terminalsitzung hat sie noch nicht neu geladen. Führen Sie source ~/.bashrc aus (oder source ~/.zshrc für Zsh), oder öffnen Sie ein neues Terminalfenster. Wenn das Problem weiterhin besteht, überprüfen Sie manuell, ob der nvm-Initialisierungsblock am Ende Ihrer RC-Datei vorhanden ist.

Kann ich mehrere Node.js-Versionen gleichzeitig auf demselben Server ausführen?

Ja, mit nvm. Jede Version wird in ihrem eigenen Verzeichnis unter ~/.nvm/versions/ installiert. Sie können die aktive Version pro Shell-Sitzung mit nvm use <version> wechseln oder pro Projekt eine .nvmrc-Datei verwenden. Verschiedene Prozesse, die unterschiedliche Node.js-Versionen ausführen, können konfliktfrei koexistieren.

Warum sollte ich Node.js nicht aus dem Standard-Ubuntu/Debian-apt-Repository installieren?

Die Standard-Ubuntu- und Debian-Repositories liefern Node.js-Versionen, die oft zwei bis vier Hauptversionen hinter dem aktuellen LTS zurückliegen. Beispielsweise liefert Ubuntu 22.04 standardmäßig Node.js 12 – eine Version, die 2022 das End-of-Life erreicht hat. Verwenden Sie immer das NodeSource-Repository oder nvm, um ein unterstütztes, aktuelles Release zu erhalten.

Wie deinstalliere ich Node.js vollständig und fange neu an?

Die Methode hängt davon ab, wie es installiert wurde. Für NodeSource-Installationen: sudo apt-get remove nodejs && sudo apt-get autoremove. Für nvm: nvm uninstall <version> für bestimmte Versionen, oder löschen Sie das ~/.nvm-Verzeichnis vollständig und entfernen Sie die Initialisierungszeilen aus Ihrer RC-Datei. Für Homebrew: brew uninstall node. Für den offiziellen Installer unter macOS/Windows verwenden Sie den Standard-Anwendungsdeinstaller des Systems und entfernen Sie manuell alle verbleibenden Verzeichnisse unter /usr/local/lib/node_modules oder %AppData%npm.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen