Kurz: npm (Node Package Manager) wird mit Node.js installiert. Es verwaltet Pakete (Bibliotheken) aus der riesigen Sammlung auf npmjs.com und führt Skripte deines Projekts aus.
Teil des Kurses JavaScript
Kapitel 35 von 40 im Kurs JavaScript. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.
npm (Node Package Manager) wird mit Node.js installiert. Es verwaltet Pakete (Bibliotheken) aus der riesigen Sammlung auf npmjs.com und führt Skripte deines Projekts aus.
Ein Projekt anlegen
mkdir mein-projekt
cd mein-projekt
npm init -y # erzeugt package.json mit StandardwertenDie Datei package.json beschreibt dein Projekt:
{
"name": "mein-projekt",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node index.js",
"test": "node --test",
"lint": "eslint ."
},
"dependencies": {
"express": "^4.19.0"
},
"devDependencies": {
"eslint": "^9.0.0"
}
}| Feld | Bedeutung |
|---|---|
type: "module" | .js-Dateien sind ES-Module |
scripts | Kurzbefehle: npm run lint, npm start, npm test |
dependencies | Pakete, die dein Programm zur Laufzeit braucht |
devDependencies | nur für Entwicklung (Tests, Linter, Build) |
Pakete installieren
npm install express # in dependencies
npm install -D eslint # in devDependencies
npm install # alles aus package.json installieren
npm uninstall express
npm update # innerhalb der erlaubten Versionen aktualisieren
npm outdated # veraltete Pakete anzeigen
npx cowsay "Hallo" # Paket einmalig ausführen, ohne zu installierenPakete landen im Ordner node_modules/ (nie in die Versionsverwaltung aufnehmen: .gitignore!). Die Datei package-lock.json hält die genauen Versionen fest und gehört ins Repository, damit alle dieselben Pakete bekommen.
Versionen (SemVer)
Versionsnummern haben die Form MAJOR.MINOR.PATCH, zum Beispiel 4.19.2:
| Änderung | Bedeutung | Beispiel |
|---|---|---|
| PATCH | Fehlerbehebung | 4.19.1 → 4.19.2 |
| MINOR | neue Funktion, kompatibel | 4.19.2 → 4.20.0 |
| MAJOR | Bruch der Kompatibilität | 4.x → 5.0.0 |
In package.json bedeutet ^4.19.0 “ab 4.19.0, aber unter 5.0.0”, und ~4.19.0 “ab 4.19.0, aber unter 4.20.0”.
Das Paket benutzen
import express from "express";
const app = express();
app.get("/", (req, res) => res.send("Hallo!"));
app.listen(3000);Sicherheit
Jedes Paket ist Code von Fremden, und jedes Paket bringt oft weitere Abhängigkeiten mit.
npm auditzeigt bekannte Sicherheitslücken,npm audit fixbehebt viele davon- Prüfe Pakete vor der Installation: Downloadzahlen, Pflege, Anzahl der Abhängigkeiten
- Achte auf Tippfehler-Namen (Typosquatting)
- Installiere nur, was du wirklich brauchst; manchmal reichen eingebaute Funktionen
- Lockfile committen und in der CI mit
npm ciexakt reproduzierbar installieren
Alternativen zu npm
| Werkzeug | Eigenschaft |
|---|---|
| pnpm | spart Platz durch gemeinsamen Speicher, schnell |
| Yarn | älterer Konkurrent mit ähnlichen Befehlen |
| Bun | Laufzeit und Paketmanager in einem |
Die Pakete sind dieselben, nur die Befehle unterscheiden sich leicht.
Ein kleines Paket selbst bauen
// Das Muster eines Moduls, das du veröffentlichen könntest
const slugify = (text) =>
text
.toLowerCase()
.normalize("NFD").replace(/[̀-ͯ]/g, "")
.replace(/ß/g, "ss")
.replace(/[^a-z0-9]+/g, "-")
.replace(/^-+|-+$/g, "");
console.log(slugify("Größe: Äpfel & Birnen!"));
console.log(slugify(" Hallo Welt "));Ausgabe:
grosse-apfel-birnen
hallo-weltMerke
package.jsonbeschreibt das Projekt,package-lock.jsonfixiert Versionennpm installinstalliert,npm run <name>führt Skripte aus,npxstartet Werkzeuge- SemVer: MAJOR.MINOR.PATCH;
^erlaubt Minor- und Patch-Updates node_modulesnicht ins Repository- Pakete prüfen,
npm auditnutzen
Übungsaufgabe
Lege ein Projekt mit npm init -y an, installiere ein kleines Paket deiner Wahl, schreibe ein Skript, das es benutzt, und trage in package.json einen start-Befehl ein.
Quiz zur Selbstkontrolle
Wofür steht die Datei package-lock.json?
- Sie hält die genauen Versionen aller Pakete fest (richtig)
- Sie sperrt das Projekt
- Sie enthält Passwörter
- Sie ist nur Dokumentation
Was bedeutet ^4.19.0?
- Ab 4.19.0 bis unter 5.0.0 (richtig)
- Genau 4.19.0
- Alles ab 4.0.0
- Nur 4.19.x
Was macht npx?
- Führt ein Paket aus, ohne es fest zu installieren (richtig)
- Löscht Pakete
- Aktualisiert npm
- Startet den Server
Weiter im Kurs
Zurück: Node.js Grundlagen
Weiter: Code testen
Alle Kapitel: JavaScript im Überblick