So verwenden Sie es
- Tippen Sie eine Version wie 1.4.0 ein und optional eine Version unter Vergleichen mit, mit der sie verglichen wird.
- Wählen Sie eine Erhöhung, um die nächste Version zu sehen. Bei einer Erhöhung zur Vorabversion nennen Sie die Vorabversion unter Name der Vorabversion.
- Tippen Sie einen Bereich ein, um zu prüfen, ob die Version dazu passt. Lesen Sie So liest sich der Bereich ab, um zu sehen, was jeder Teil bedeutet.
- Lesen Sie Erhöhte Version, Reihenfolge und Bereichsprüfung für die Antwort ab, die Sie brauchen.
So werden Versionen geordnet
SemVer 2.0.0 vergleicht die Major-, Minor- und Patch-Zahlen als Zahlen. Eine Version mit einem Vorabkennzeichen kommt vor derselben Version ohne Kennzeichen. Die Kennungen der Vorabversion werden einzeln verglichen: Zahlen als Zahlen, Text in ASCII-Reihenfolge, und eine Zahl steht vor Text. Die Build-Metadaten, also der Teil nach +, zählen nicht.
- Die Reihenfolge der Beispiele in der Spezifikation: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-alpha.beta, 1.0.0-beta, 1.0.0-beta.2, 1.0.0-beta.11, 1.0.0-rc.1, 1.0.0.
- Ein führendes v, wie in v1.4.0, wird angenommen und gehört nicht zur Version.
Wie eine Erhöhung funktioniert
Eine Major-Erhöhung hebt die erste Zahl an und setzt die beiden anderen auf 0. Eine Minor- oder Patch-Erhöhung tut dasselbe für ihren Teil. Eine Version, die noch eine Vorabversion ist, verliert ihr Kennzeichen, wenn die Erhöhung die Ausgabe ohnehin anhebt: 1.0.0-alpha wird mit einer Major-Erhöhung zu 1.0.0, wie es node-semver tut. Eine Erhöhung zur Vorabversion beginnt die nächste Patch-Version mit dem Namen, den Sie angeben, etwa 1.4.1-beta.0. Oder sie zählt die letzte Zahl einer bestehenden Vorabversion hoch, etwa beta.1 zu beta.2.
Wie die Bereiche gelesen werden
Die Bereichssyntax folgt node-semver, dem Paket, das npm verwendet, und seiner Grammatik in der README (englisch). Jede Form steht für Vergleichsausdrücke: ^1.3.0 bedeutet >=1.3.0 <2.0.0-0, ~1.2.3 bedeutet >=1.2.3 <1.3.0-0, und 1.2.x bedeutet >=1.2.0 <1.3.0-0. Die Vergleichsausdrücke innerhalb einer Menge müssen alle gelten. Mengen, die durch || verbunden sind, sind Alternativen. Eine leere Menge nimmt jede Version an, wie * es tut.
Vorabversionen und Bereiche
Eine Vorabversion wie 1.5.0-beta.1 passt zu einem Bereich nur dann, wenn einer der Vergleichsausdrücke ihrer Menge dieselbe Version 1.5.0 mit einem Vorabkennzeichen nennt. Unfertige Versionen bleiben daher standardmäßig aus Bereichen heraus, wie die README von node-semver (englisch) erklärt. Die Prüfung auf dieser Seite folgt dieser Regel.
Rechenbeispiel: 1.4.0 mit einer Minor-Erhöhung und ^1.3.0 || 2.x
Die Version 1.4.0 ist höher als 1.4.0-beta.2, weil eine Veröffentlichung höher ist als ihre Vorabversion. Eine Minor-Erhöhung ergibt 1.5.0. Der Bereich ^1.3.0 || 2.x liest sich als >=1.3.0 <2.0.0-0 oder >=2.0.0 <3.0.0-0, und 1.4.0 passt zur ersten Menge.
| Eingabe | Ergebnis |
|---|---|
| 1.4.0 verglichen mit 1.4.0-beta.2 | 1.4.0 ist höher als 1.4.0-beta.2. |
| Minor-Erhöhung von 1.4.0 | 1.5.0 |
| 1.4.0 in ^1.3.0 || 2.x | 1.4.0 passt zu ^1.3.0 || 2.x. |
Häufig gestellte Fragen
Ist 1.0.0+build.1 dieselbe Version wie 1.0.0?
Für die Reihenfolge und für Bereiche ja. Die Build-Metadaten nach + zählen in der Rangfolge von SemVer nicht, daher haben beide Versionen denselben Platz in einer Reihenfolge. Die Seite zeigt den Build-Text trotzdem an, damit Sie ihn sehen.
Warum ist 1.4.0-beta.2 niedriger als 1.4.0?
Eine Vorabversion ist instabil und erfüllt die Kompatibilität, die ihre Nummer verspricht, unter Umständen nicht. SemVer setzt sie daher vor die Veröffentlichung mit denselben Zahlen. Also kommt 1.4.0-beta.2 vor 1.4.0, und 1.4.0 kommt vor 1.4.1.
Nimmt ^1.3.0 die Version 2.0.0 an?
Nein. Ein Caret-Bereich behält die erste Zahl ungleich null, daher bedeutet ^1.3.0 mindestens 1.3.0 und unter 2.0.0. Schreiben Sie zusätzlich || 2.x, wenn die zweite Major-Version angenommen werden soll, wie es das Beispiel tut.
Was ist der Unterschied zwischen ~1.2 und ^1.2?
Der Tilde-Bereich ~1.2 bedeutet >=1.2.0 <1.3.0-0. Er nimmt also Patch-Änderungen wie 1.2.9 an und lehnt 1.3.0 ab. Der Caret-Bereich ^1.2 bedeutet >=1.2.0 <2.0.0-0, nimmt daher auch 1.3.0 und 1.9.9 an, aber nicht 2.0.0.
Warum lehnt ein Bereich 1.5.0-beta.1 ab?
Vorabversionen bleiben draußen, außer ein Vergleichsausdruck nennt dieselbe Version mit einem Vorabkennzeichen, etwa >=1.5.0-beta.0. node-semver trifft diese Wahl, weil sich Vorabversionen schnell ändern und Dinge brechen können.
Werden meine Versionen an einen Server gesendet?
Nein. Die Version, der Bereich und der Vergleich werden in Ihrem Browser gelesen und geprüft. Nichts, was Sie eingeben, wird gespeichert.
Quellen
- Semantic Versioning 2.0.0 (englisch), die Spezifikation
- node-semver README (englisch): Bereiche und die Grammatik der Bereiche (npm)
- node-semver README (englisch): Vorabkennzeichen (npm)
- node-semver-Repository, ISC-Lizenz (englisch, npm)
Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.