SemVer 計算ツール
セマンティックバージョンの解析・比較・範囲チェック・インクリメント・強制変換をブラウザ内で。入力したバージョンは端末上に留まります。
入力したバージョンと範囲はブラウザ内でローカルに評価され、アップロードされることはありません。
手早く一意なIDが必要ですか?UUIDジェネレーターをお試しください。
SemVer 計算ツール について
このsemver計算ツールは、バージョン番号にまつわるあらゆる作業のためのセマンティックバージョニング(Semantic Versioning)ツールキットです。1.2.3-beta.1+build.42 のようなバージョンを major・minor・patch・プレリリース・ビルドメタデータに解析できます。2つのバージョンを比較してどちらが新しくどのレベルで異なるかを確認し、^1.2.3・~1.2・1.x・>=1.0.0 <2.0.0 といったnpm範囲をバージョンが満たすかをチェックし、major・minor・patch や任意のプレリリースのステップでバージョンを上げ、v1.2 のような緩い文字列をきれいなsemverに強制変換できます。依存関係の範囲を日々扱う開発者・パッケージ作者・リリースエンジニアのために作られています。npmが使うのと同じsemverライブラリを利用し、すべての計算はブラウザ内で動作するため、入力したバージョンは端末上に留まります。
機能
- バージョンを major・minor・patch・プレリリース識別子・ビルドメタデータに解析
- 2つのバージョンを比較し関係(A > B、A = B、A < B)と差分レベルを表示
- ^1.2.3・~1.2・1.x・>=1.0.0 <2.0.0 のような範囲をバージョンが満たすかチェック
- 入力した範囲に対する数個の例バージョンの合否をプレビュー
- major・minor・patch・premajor・preminor・prepatch・prerelease でインクリメント
- v1.2 や 1.2.3.4 のような緩い文字列を有効なsemverに強制変換
- 入力をライブに検証し、バージョンや範囲が不正なときは明確なメッセージを表示
- 任意の結果フィールドをワンクリックでコピー
SemVer 計算ツール の使い方
- モードを選びます:Parse・Compare・Range・Increment・Coerce。
- バージョン(モードに応じて2つ目のバージョンや範囲)を入力します。
- 入力の下の情報行とバッジでライブ結果を読みます。
- 上げたバージョンや差分レベルなど、必要な値をコピーします。
例
入力
version: 1.5.0
range: ^1.2.3
出力
1.5.0 satisfies ^1.2.3 ✓
1.6.0 → pass 2.0.0 → fail
キャレット範囲 ^1.2.3 は、次のメジャー(2.0.0)の手前までを許可します。
よくあるエラーとトラブルシューティング
- 問題なさそうなのに、Parseがバージョンを不正だと言う。 — semverには3つの要素すべてが必要です。1.2 ではなく 1.2.0 を使い、プレリリース/ビルドはハイフン/プラスの後に置いてください。例:1.2.3-rc.1+build.5。
- 1.2 や ^1.2 のような範囲が想定と違う挙動をする。 — 1.2 は 1.2.x として扱われ、^1.2 は次のメジャーまでを許可します。Rangeモードの例バージョンで、何が合格するか正確に確認してください。
- prereleaseへのインクリメントが、同じpatchから始まらず 1.2.4-0 になる。 — 安定版の 1.2.3 からは、プレリリースの繰り上げはまず次のpatch(1.2.4-0)へ進みます。どの部分を上げるか制御するには premajor/preminor/prepatch を使ってください。
- Coerceが入力の一部を落とす。例:1.2.3.4 が 1.2.3 になる。 — 強制変換は最初の3つの数字の並びを見つけて残りを無視するので、4つ目のセグメントや末尾のテキストは意図的に破棄されます。
よくある質問
- ^1.2.3 の範囲は何を許可しますか。
- キャレット範囲 ^1.2.3 は、左端のゼロでない桁を変えないバージョンを許可するので、1.2.3 から 2.0.0 の手前までにマッチします。0.x バージョンではルールが厳しくなり、^0.2.3 は 0.2.3 から 0.3.0 の手前までを許可します。
- プレリリースバージョンは安定版とどう比較されますか。
- プレリリースは対応するリリースより優先度が低いので、1.0.0-rc.1 は 1.0.0 より小さくなります。プレリリースはフィールドごとに比較されます。識別子はソートされ、数値の識別子はより長い、または英数字の識別子より下位になります。
- ~1.2 と ^1.2 の違いは何ですか。
- チルダ ~1.2 は 1.2 内のpatchレベルの変更(>=1.2.0 <1.3.0)を許可し、キャレット ^1.2 は次のメジャーまでのminorとpatchの変更(>=1.2.0 <2.0.0)を許可します。サンプルバージョンの合否はRangeモードで確認できます。
- このsemver計算ツールはビルドメタデータをどう扱いますか。
- プラス記号の後のビルドメタデータ(たとえば +build.42)は解析されて表示されますが、優先度の比較では無視されるため、1.0.0+a と 1.0.0+b は等しいバージョンとみなされます。
- バージョンを強制変換すると何が起きますか。
- 強制変換は、見つけられる最初の major.minor.patch の並びを使って緩い文字列を有効なsemverに変えます。v1.2 は 1.2.0 に、1.2.3.4 は 1.2.3 に、release-3.1 は 3.1.0 になり、欠けている要素はゼロを既定値とします。
- どのリリースタイプでインクリメントできますか。
- major・minor・patch・premajor・preminor・prepatch・prerelease で上げられます。pre- 系は選んだ部分でプレリリースのラインを開始します。たとえば 1.2.3 への premajor は 2.0.0-0 になります。
関連ツール
すべての ArrayKit ツール