SemVer-Bereichsrechner
Entwickler-API & Paket-Dienstprogramme

SemVer-Bereichs- & Versions-Kompatibilitätsrechner

Testen Sie semantische Versionierungsbereiche (Caret ^, Tilde ~, Bindestrich-Intervalle, X-Ranges, Pre-Releases) und bewerten Sie die Versionskompatibilität in Echtzeit.

100% clientseitige Privatsphäre
Null Serverübertragung
Presets:
SemVer-Bereich & Kandidateneingabe
Normalized:>=18.2.0 <19.0.0-0 || >=19.0.0 <20.0.0-0
Erfüllungsrate
50%(4 von 8 bestanden)
Niedrigste passende Version
v18.2.0
Höchste passende Version
v19.0.1
StatusGeprüfte VersionErgebnis & Begründung
Erfüllt18.2.0Satisfies clause #1 (^18.2.0): [18.2.0, 19.0.0)
Erfüllt18.3.1Satisfies clause #1 (^18.2.0): [18.2.0, 19.0.0)
Erfüllt19.0.0Satisfies clause #2 (^19.0.0): [19.0.0, 20.0.0)
Erfüllt19.0.1Satisfies clause #2 (^19.0.0): [19.0.0, 20.0.0)
Abgelehnt19.1.0-canary.1preDoes not satisfy any clause in the range expression.
Abgelehnt18.1.9Does not satisfy any clause in the range expression.
Abgelehnt20.0.0Does not satisfy any clause in the range expression.
Abgelehnt17.0.2Does not satisfy any clause in the range expression.

Reine Client-seitige SemVer 2.0 Engine

Sofortige, deterministische Auswertung nach offiziellen npm- und SemVer 2.0-Spezifikationen ohne Netzwerkverzögerung.

Vertraulichkeit ohne Datenübertragung

Ihre Abhängigkeitslisten, internen Paketnamen und Release-Tags verbleiben vollständig in Ihrem lokalen Browser.

Vollständige Syntax-Unterstützung

Umfassende Prüfung von Caret (^), Tilde (~), Bindestrich-Bereichen (-), X-Ranges (*, 1.x), logischem OR (||) und Pre-Release-Regeln.

Technische Referenz & Architektur-Leitfaden

SemVer-Bereichs & Versionserfüllungs-Prüfer — Referenz-Leitfaden

Testen Sie semantische Versionierungsbereiche (Caret ^, Tilde ~, Bindestrich-Intervalle, X-Ranges, Pre-Releases) und bewerten Sie die Versionskompatibilität in Echtzeit.

Wichtige Parameter & Steuerelemente

Bereichsausdruck (Range Expression)String

SemVer-Bereichsabfrage mit Vergleichsoperatoren (>=, <), Caret (^), Tilde (~), Wildcards (1.x, *), Bindestrich-Bereichen (1.0.0 - 2.0.0) und Mengenvereinigungen (||).

Standard: ^1.2.3 || ~2.0.0
Zielversion (Target Version)String

Die zu überprüfende Versionszeichenfolge, einschließlich optionaler Vorabversionsbezeichner und Build-Metadaten.

Standard: 1.4.0
Vorabversionen einbeziehen (Include Pre-releases)Boolean

Ermöglicht Vorabversionen (z. B. 1.3.0-rc.1), Bereiche zu erfüllen, selbst wenn der Operator kein explizites Pre-Release-Tupel deklariert.

Standard: false
Toleranter Modus (Loose Mode)Boolean

Aktiviert eine fehlertolerante Analyse für nicht-kanonische Versionen (z. B. führende 'v'-Präfixe, fehlende Patch-Nummern wie 1.2 oder Leerzeichen).

Standard: false

Profi-Tipps & Best Practices

Gemäß SemVer 2.0.0 und npm-semver

Gemäß SemVer 2.0.0 und npm-semver sperrt ^0.2.3 Aktualisierungen auf >=0.2.3 <0.3.0, da Minor-Schritte vor Version 1.0.0 Breaking Changes enthalten dürfen. Bei ^0.0.3 wird exakt auf 0.0.3 fixiert.

Eine Version mit Vorabversions-Tag

Eine Version mit Vorabversions-Tag (z. B. 1.2.3-alpha.1) erfüllt standardmäßige Bereiche wie >=1.0.0 nicht, es sei denn, mindestens ein Operator im Bereich deklariert dasselbe [major, minor, patch]-Tupel.

Bindestrich-Bereiche erfordern

Bindestrich-Bereiche erfordern zwingend umschließende Leerzeichen ('1.2.3 - 2.0.0'). Ohne Leerzeichen ('1.2.3-2.0.0') interpretiert der Parser '-2.0.0' fälschlicherweise als Vorabversion von 1.2.3.

Nach SemVer 2.0.0 Klausel 10 besitzen

Nach SemVer 2.0.0 Klausel 10 besitzen Build-Metadaten (+build.2024, +sha.c0ffee) keinerlei Gewicht bei der Rangfolge: 1.0.0+1 und 1.0.0+999 gelten als absolut gleichrangig.

Häufige Fallstricke & Fehlerbehebung

Vorabversion erfüllt breiten Bereich nicht (z. B. 2.0.0-rc.1 wird von >=1.0.0 abgelehnt)

SemVer isoliert Pre-Releases gezielt, um instabile Builds in Produktionsumgebungen zu verhindern. Aktivieren Sie 'Vorabversionen einbeziehen' oder geben Sie explizite Grenzen wie '>=1.0.0 || >=2.0.0-0' an.

Parser weist Versionen mit führendem 'v'-Präfix ab (z. B. 'v1.4.2')

Kanonisches SemVer 2.0.0 verbietet das 'v'-Präfix. Aktivieren Sie den toleranten Modus (Loose Mode) oder bereinigen Sie die Zeichenfolge vorab mit semver.clean().

Tilde (~) und Caret (^) führen zu unbeabsichtigter Abhängigkeitsdrift

Beachten Sie, dass ~1.2.3 Aktualisierungen auf Patch-Ebene (<1.3.0) beschränkt, während ^1.2.3 abwärtskompatible Minor-Releases (<2.0.0) zulässt. Verwenden Sie exakte Versionen (1.2.3), wenn Sie reproduzierbare Builds ohne Lockfile anstreben.

Häufig gestellte Fragen (FAQ)

Was ist der wesentliche Unterschied zwischen den Operatoren Caret (^) und Tilde (~)?▼

Das Caret (^) gestattet Aktualisierungen, die die am weitesten links stehende Ziffer ungleich Null im Tupel [major, minor, patch] nicht verändern. So erlaubt ^1.2.3 >=1.2.3 <2.0.0, während ^0.2.3 >=0.2.3 <0.3.0 erlaubt. Die Tilde (~) erlaubt Patch-Aktualisierungen bei angegebener Minor-Version: ~1.2.3 erlaubt >=1.2.3 <1.3.0 und ~1.2 erlaubt >=1.2.0 <1.3.0.

Warum akzeptiert ein Bereich wie '>=1.0.0 <3.0.0' keine Version '2.0.0-beta.1'?▼

Nach npm-semver-Spezifikation kann eine Vorabversion einen Bereich nur erfüllen, wenn der Bereich einen Operator mit exakt demselben [major, minor, patch]-Tupel enthält. Da weder 1.0.0 noch 3.0.0 dem Tupel 2.0.0 entsprechen, wird die instabile Vorabversion standardmäßig ausgeschlossen.

Wie werden Bezeichner von Vorabversionen (Pre-Releases) hinsichtlich der Priorität verglichen?▼

Pre-Release-Bezeichner werden durch Punkte getrennt und von links nach rechts verglichen. Rein numerische Segmente werden als Zahlen verglichen, alphanumerische Segmente lexikalisch nach ASCII-Reihenfolge. Numerische Bezeichner haben stets eine niedrigere Priorität als nicht-numerische (z. B. 1.0.0-1 < 1.0.0-alpha < 1.0.0-beta < 1.0.0).

Wie werden Platzhalter und X-Ranges (z. B. '1.2.x', '1.*') aufgelöst?▼

X-Ranges interpretieren 'x', 'X' oder '*' als Platzhalter für fehlende Versionssegmente. '1.x' oder '1.*' expandiert zu '>=1.0.0 <2.0.0-0'. '1.2.x' oder '1.2.*' expandiert zu '>=1.2.0 <1.3.0-0'. Ein leerer Ausdruck oder '*' entspricht jedem gültigen SemVer (>=0.0.0).

Haben Build-Metadaten (+build) Einfluss auf den Versionsabgleich?▼

Nein. Gemäß SemVer 2.0.0 Spezifikation Klausel 10 werden Build-Metadaten beim Vergleich der Versionspriorität vollständig ignoriert. Zwei Versionen, die sich nur durch Metadaten unterscheiden (wie 1.0.0+build1 und 1.0.0+build2), erfüllen identische Bereiche.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →