Entwicklung und Betrieb

Versionierungs- und Paket-Tools

Versions- und Abhängigkeitsfragen betreffen ständig mehrere Ökosysteme zugleich: ob ein npm-Bereich wirklich zu einer Version passt, die du gleich veröffentlichst, ob das exports-Feld einer package.json so auflöst, wie es ein Bundler erwartet, oder wie eine Maven-Abhängigkeit in Gradles DSL aussieht. Diese Seite bietet Versions- und Bereichs-Tools für Semver, PEP 440 und weitere Paketmanager sowie Editoren für package.json und ihre exports-Map.

Der Semver-Rechner vergleicht Versionen und testet npm-Bereiche direkt, während PEP 440 Versionsprüfung Pythons eigenes, strengeres Versionsschema abdeckt – beide Systeme sind nicht identisch. Package.json exports visualisieren testet Subpath-Exports gezielt gegen import- und require-Auflösung, was ein einfacher JSON-Viewer nicht zeigt. Maven zu Gradle und Paketversionen und weitere Ökosysteme für Composer, NuGet, Go und Cargo runden die ökosystemübergreifende Arbeit ab, alles läuft lokal.

8 Tools

FAQ zu Versioning & Packages-Tools

Warum trifft ein npm-Versionsbereich auf eine Version zu, die ich nicht erwartet habe?

Bereiche wie ^1.2.3 oder ~1.2.3 folgen eigenen Semver-Regeln dafür, welche Teile sich ändern dürfen, und ein Caret-Bereich behandelt eine 0.x-Version anders als eine 1.x-Version. Der Semver-Rechner testet eine Version direkt gegen einen Bereich, statt es von Hand herzuleiten.

Ist eine Python-Version wie 1.0.0rc1 gültig, und wie wird sie einsortiert?

Nach PEP 440 ist sie als Pre-Release gültig und wird vor dem finalen Release 1.0.0 einsortiert. PEP 440 Versionsprüfung normalisiert und sortiert eine Liste von Python-Versionen und prüft sie gegen Bedingungen, zuverlässiger als ein reiner String-Vergleich von Hand.

Warum funktioniert package.json exports mit import, aber nicht mit require, oder umgekehrt?

Das exports-Feld kann unterschiedliche Dateien auf import- und require-Bedingungen abbilden, und eine nur für CommonJS gedachte Datei unter einer import-Bedingung bricht die Auflösung für die eine Seite, die andere aber nicht. Package.json exports visualisieren testet Subpath-Auflösung gegen beide Bedingungen, bevor du veröffentlichst.