Zum Inhalt springen
Node.js Anfรคnger 15 min

Node & npm installieren

Node.js via nvm, fnm oder Volta installieren. Plus: npm, yarn, pnpm, bun - welcher Package-Manager wann Sinn ergibt.

Aktualisiert:
Inhaltsverzeichnis

Node & npm installieren

Wie bei Python und Ruby empfehlen wir dir einen Version-Manager statt der System-Installation. So kannst du zwischen Node-Versionen wechseln und vermeidest Sudo-Chaos bei npm.

Warum ein Version-Manager?

Ohne:

  • Jedes System-Update ueberraescht dich
  • sudo npm install -g fuehrt zu Rechte-Problemen
  • Wechsel zwischen Node 18 / 22 fuer verschiedene Projekte nervig

Mit:

  • nvm use 22 oder .nvmrc im Projekt - fertig
  • Keine sudos noetig

nvm (macOS / Linux)

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

Neue Shell oeffnen, dann:

nvm install --lts
nvm use --lts
node --version
# v22.x.x

Version pro Projekt festlegen:

echo "22" > .nvmrc
nvm use

fnm (schneller als nvm)

# macOS / Linux
brew install fnm
# oder
curl -fsSL https://fnm.vercel.app/install | bash

fnm install --lts
fnm use --lts

fnm ist in Rust geschrieben und deutlich schneller als nvm.

Volta (plattformuebergreifend)

curl https://get.volta.sh | bash

Volta versteht engines-Feld in package.json und wechselt automatisch die Node-Version pro Projekt.

Windows

Option A: nvm-windows

nvm-windows - inoffiziell, aber funktioniert gut.

Option B: fnm ueber winget

winget install Schniz.fnm

Option C: Installer von nodejs.org

Einfachste Variante, aber kein Wechseln zwischen Versionen.

Option D: WSL2

Dann wie unter Linux.

Installation pruefen

node --version
npm --version

Beide sollten Versionen ausgeben. Im Regelfall kommen:

  • Node 22 (aktuelles LTS)
  • npm 10 (kommt mit Node)

npm - der Package-Manager

npm ist mit Node installiert. Erstes Projekt:

mkdir hallo-node
cd hallo-node
npm init -y              # erstellt package.json mit Defaults

Inhalt package.json:

{
  "name": "hallo-node",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }
}

Wichtig: "type": "module" fuegst du manuell hinzu - damit kannst du modernes ESM nutzen (import/export statt require).

Packages installieren

npm install express          # Dependency
npm install -D typescript    # Dev-Dependency

Installierte Pakete landen in node_modules/ und werden in package.json eingetragen.

Scripts ausfuehren

{
  "scripts": {
    "dev": "node --watch index.js",
    "start": "node index.js",
    "test": "vitest"
  }
}

Dann:

npm run dev
npm start       # "start" ohne "run"
npm test        # "test" auch

Alternativen zu npm

pnpm (empfohlen)

npm install -g pnpm

Vorteile:

  • Viel schneller als npm
  • Weniger Disk-Platz (content-addressable storage)
  • Striktere Dependency-Aufloesung

Aufruf fast identisch:

pnpm install
pnpm add express
pnpm run dev

Bun

Bun ist gleichzeitig Runtime und Package-Manager:

curl -fsSL https://bun.sh/install | bash
# oder
brew install oven-sh/bun/bun
bun install
bun add express
bun run dev

Bun ist extrem schnell - oft 10x schneller als npm beim Install.

yarn

Frueher der Platzhirsch, heute weniger verbreitet. Immer noch solide.

Was wann?

  • npm: immer da, Standard
  • pnpm: schneller, weniger Platz, strikter
  • bun: wenn du ohnehin Bun als Runtime testest
  • yarn: in aelteren Codebases, sonst eher vermeiden

Fuer Einsteiger reicht npm, fuer echte Projekte zunehmend pnpm.

Editor

VS Code

Installiere folgende Extensions:

  • ESLint - Linter-Integration
  • Prettier - Code-Formatter
  • Error Lens - Fehler inline anzeigen
  • (Bei TypeScript) TypeScript-Support ist eingebaut

Ein erstes Programm

index.js:

console.log("Hallo, Node!");
console.log("Node-Version:", process.version);

Ausfuehren:

node index.js

โ€”watch-Mode

Node hat seit v18 einen eingebauten Watch-Mode:

node --watch index.js

Aenderungen an der Datei starten automatisch neu. Keine Extra-Tools wie nodemon mehr noetig.

.nvmrc im Projekt

Fuer Reproduzierbarkeit:

echo "22" > .nvmrc

Ueberall, wo nvm/fnm installiert ist, wechselt man mit nvm use / fnm use automatisch zur richtigen Version.

Globale Pakete installieren

npm install -g <paket>

Beispiele:

  • typescript - TypeScript-Compiler tsc
  • tsx - TypeScript-Dateien direkt ausfuehren
  • pnpm, yarn, bun

Aber: Im Projekt ist besser (eine Version pro Projekt, reproduzierbar).

Corepack - neue npm-Alternative

Seit Node 16 kommt Corepack mit - es verwaltet pnpm/yarn fuer dich:

corepack enable
corepack prepare pnpm@9.0.0 --activate

In package.json:

{
  "packageManager": "pnpm@9.0.0"
}

Jeder, der das Projekt nutzt, bekommt automatisch die richtige Version.

Zusammenfassung

  • nvm / fnm / Volta statt System-Node nutzen
  • Node 22 LTS fuer neue Projekte
  • "type": "module" in package.json fuer modernes ESM
  • pnpm als schnellere npm-Alternative
  • .nvmrc im Projekt festhalten
  • node --watch ersetzt nodemon

Im naechsten Kapitel: Dein erstes Node-Programm im Detail.

Zurรผck zum Node.js Kurs