Semver
Versionsnummern im JavaScript-Ökosystem folgen dem Standard Semantic Versioning (kurz: Semver). Das Schema lautet:
MAJOR.MINOR.PATCH └─── Breaking Changes └─── Neue Features (abwärtskompatibel) └─── Bugfixes (abwärtskompatibel)Beispiel: 19.1.3 — Major 19, Minor 1, Patch 3.
Eine neue Hauptversion (20.0.0) darf bestehende APIs brechen. Eine neue Nebenversion (19.2.0) fügt Features hinzu, ohne etwas kaputtzumachen. Ein Patch (19.1.4) behebt nur Fehler.
Versionsbereiche in package.json
Abschnitt betitelt „Versionsbereiche in package.json“In der package.json stehen selten exakte Versionen — stattdessen Bereiche:
{ "dependencies": { "react": "^19.1.0", "lodash": "~4.17.21", "some-tool": "3.0.0" }}| Prefix | Bedeutung | Erlaubt |
|---|---|---|
^ | Kompatibel mit dieser Version | Minor- und Patch-Updates |
~ | Ungefähr diese Version | Nur Patch-Updates |
| (keiner) | Exakt diese Version | Keine Updates |
"react": "^19.1.0" heißt: installiere mindestens 19.1.0, aber nicht 20.0.0 — also alles in Major-Version 19.
Warum das wichtig ist
Abschnitt betitelt „Warum das wichtig ist“Wenn du npm install in einem neuen Checkout ausführst, installiert npm die neueste Version innerhalb des angegebenen Bereichs — sofern kein Lockfile vorhanden ist. Das kann dazu führen, dass zwei Entwickler unterschiedliche Versionen haben, obwohl sie dasselbe Repository benutzen.
Deshalb existiert der Lockfile: Er fixiert die tatsächlich installierte Version, unabhängig vom Versionsbereich in package.json.
Updates verwalten
Abschnitt betitelt „Updates verwalten“# Zeigt veraltete Pakete und die neueste verfügbare Versionnpm outdated
# Aktualisiert Pakete innerhalb der erlaubten Bereiche aus package.jsonnpm update
# Installiert eine bestimmte Version explizitnpm install react@19.0.0