Node & npm installieren
Node.js via nvm, fnm oder Volta installieren. Plus: npm, yarn, pnpm, bun - welcher Package-Manager wann Sinn ergibt.
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 -gfuehrt zu Rechte-Problemen- Wechsel zwischen Node 18 / 22 fuer verschiedene Projekte nervig
Mit:
nvm use 22oder.nvmrcim 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-Compilertsctsx- TypeScript-Dateien direkt ausfuehrenpnpm,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"inpackage.jsonfuer modernes ESM- pnpm als schnellere npm-Alternative
.nvmrcim Projekt festhaltennode --watchersetzt nodemon
Im naechsten Kapitel: Dein erstes Node-Programm im Detail.