Semver-Range-Prüfer
Sehen Sie, welche Versionen ein Bereich wie ^1.2.0 oder ~2.3 akzeptiert – mit npms eigenem node-semver, einschließlich Pre-Releases.
Eingabe
Ergebnis
Das Ergebnis erscheint hier.Ob ^1.2.0 die Version 1.10.0-beta.1 akzeptiert oder was ^0.2.3 erlaubt, schätzt man leicht falsch ein und testet es nur umständlich. Fügen Sie eine Liste von Versionen und einen Bereich ein, und dieses Werkzeug markiert jede Version als akzeptiert oder abgelehnt – mit node-semver, der Bibliothek, mit der npm selbst Abhängigkeiten auflöst. Außerdem sortiert es die Versionen korrekt – 1.10.0 nach 1.2.0, Pre-Releases vor ihrem Release –, zeigt den Bereich vollständig ausgeschrieben und nennt die höchste und die niedrigste Version, die ihn erfüllen.
So arbeitet es
- Versionen können durch Kommas, Leerzeichen oder Zeilenumbrüche getrennt werden; alles, was keine gültige Version ist, etwa latest, wird separat aufgeführt, statt stillschweigend ignoriert zu werden.
- Der Bereich wird in seiner ausgeschriebenen Form angezeigt – ^1.2.0 ist >=1.2.0 <2.0.0-0 –, und genau damit vergleicht node-semver tatsächlich.
- Pre-Releases sind ausgeschlossen, sofern Sie sie nicht zulassen, wie bei npm: Standardmäßig akzeptiert ^1.2.0 die Version 1.10.0-beta.1 nicht.
- Nächster Patch, nächstes Minor, nächstes Major und nächstes rc-Pre-Release der höchsten Version werden berechnet, und bei genau zwei Versionen wird der Unterschied zwischen ihnen (major, minor, patch …) angezeigt.
Wohin Ihre Daten gehen
Nirgendwohin. Dieses Werkzeug läuft vollständig in Ihrem Browser: Der eingefügte Text wird von der Seite verarbeitet und weder an einen Server übertragen noch protokolliert.
Dieses Tool ist kostenlos und braucht kein Konto. Die Ergebnisse existieren nur in Ihrer geöffneten Seite und werden nirgends gespeichert.
Was es kostet
Dieses Werkzeug ist kostenlos, ohne Anmeldung und ohne Punkte.
Häufige Fragen
- Was ist der Unterschied zwischen ^ und ~?
- ^ erlaubt alles, was die am weitesten links stehende Zahl ungleich null nicht ändert: ^1.2.3 akzeptiert alles bis ausschließlich 2.0.0. ~ erlaubt nur Patch-Updates, wenn eine Minor-Version angegeben ist: ~1.2.3 akzeptiert alles bis ausschließlich 1.3.0. npm schreibt standardmäßig ^ in die package.json.
- Warum akzeptiert ^0.2.3 nicht 0.3.0?
- Weil bei 0.x-Versionen die Minor-Nummer als die inkompatible gilt: Vor 1.0.0 gibt Semantic Versioning kein Stabilitätsversprechen, daher bedeutet ^0.2.3 >=0.2.3 <0.3.0. Ebenso akzeptiert ^0.0.3 nur 0.0.3 selbst.
- Warum lehnt ^1.2.0 die Version 1.10.0-beta.1 ab?
- npm hält Pre-Releases aus Bereichen heraus, es sei denn, der Bereich selbst nennt ein Pre-Release derselben major.minor.patch. So wird verhindert, dass versehentlich eine Beta installiert wird. Aktivieren Sie „Pre-Releases einbeziehen“, um zu sehen, was der Bereich akzeptieren würde, wenn sie erlaubt wären – so verhält sich npm mit --include-prerelease.
- Was bewirkt der Loose-Modus?
- Er akzeptiert unsaubere Versionen, die striktes Semver ablehnt, etwa =1.2.3beta, und zeigt, wie sie gelesen wurden – in diesem Fall als 1.2.3-beta. Alte Pakete und manche Tags verwenden solche Versionen; der strikte Modus entspricht dem, was die Spezifikation erlaubt.
Das Open Source dahinter
Dieses Werkzeug läuft auf npm/node-semver, veröffentlicht unter ISC. Wer dasselbe Verhalten im eigenen Programm braucht, greift zu dieser Bibliothek.
npm/node-semverAuch bekannt als
- semver checker
- semver range rechner
- npm versionsbereich
- caret vs tilde npm
- semver satisfies
- semantic versioning rechner