Semver ツール(パーサー・比較・バンプ)
開発
npm・Cargo・Go モジュールなど、どのパッケージエコシステムを扱ってもセマンティックバージョン文字列を読むことになる — 1.10.0 を 1.9.0 より小さいと誤判定したり、prerelease タグを見落としたりするミスは、何時間も無駄にする類のもの。本ツールは 2 つのバージョンをコンポーネント(major・minor・patch・prerelease・build)にパースし、semver.org の公式仕様(prerelease 順序を含む)に従って比較、各バージョンにワンクリックのバンプボタンを提供する。その下の範囲展開機は、最もよく使われる npm の範囲構文(^1.2.3・~1.2.3・~1.2・不安定 API 用の ^0.x.y)を明示的な ≥下限 <上限 に変換 — 比較演算子形式しか受け付けないツールにそのままコピーできる。
—
Major1
Minor2
Patch3
Prerelease—
Build—
Major1
Minor2
Patch10
Prerelease—
Build—
比較
B は A より大きい
マッチ
≥ 1.2.3·< 2.0.0使い方
- Version A・B にバージョン文字列を入力 — パース結果と比較がライブ更新される。
- 各バージョンの下のバンプボタン(メジャー / マイナー / パッチ / プレリリース)をクリックして次のバージョンを計算 — リリース計画に便利。
- 範囲展開機に ^1.2.3 や ~1.2 のような範囲を入力 → 下限・上限が表示、Copy で ≥a.b.c <x.y.z 文字列をコピー。
よくある質問
- プレリリースの順序は?
- 仕様上、プレリリース付き(1.0.0-alpha)は同じバージョンのプレリリース無し(1.0.0)より小さい。プレリリース内部では識別子を左から比較 — 数値は数値同士で、英数字は辞書順で、同位置で数値は常に英数字より低い順位。よって 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0。
- なぜ ^0.2.3 が <0.3.0 に展開? <1.0.0 ではなく?
- npm のキャレットは 0.x.y を特別扱い — pre-1.0 API は不安定とみなし、0.x のバンプは破壊的として扱う。よって ^0.2.3 は 0.2.x のみに、^0.0.3 は 0.0.3 のみにマッチ。npm 自体と同じ挙動。
- ビルドメタデータは比較に影響する?
- いいえ — 仕様上 +build メタデータは情報目的のみで、バージョン比較時には無視。1.0.0+abc と 1.0.0+xyz は同じ。
- ここでサポートされる範囲構文は?
- 展開機は ^x[.y[.z]]、~x[.y[.z]]、および単独の x・x.y(それぞれ ~x・~x.y のように動作)を処理。'>=1.0.0 <2.0.0' のような組合せ範囲や '1.x' のようなワイルドカードは展開されない — 各バージョンを個別にパースすることは引き続き可能。
関連ツール
JWT デコーダー
JWT のヘッダー・クレーム・有効期限を即座に確認。
開発00
UUID ジェネレーター
ランダムなバージョン 4 UUID をまとめて生成し、コピー。
開発00
ハッシュ生成 (SHA)
テキストから SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを生成。
開発00
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
開発00
Base64 エンコーダー / デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコード。
開発00
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。
開発00