SemVer比較・範囲チェック

バージョン番号を入力すると、その構成要素、別のバージョンとの順序、次の番号上げの結果、npm の範囲に当てはまるかを表示します。SemVer 2.0.0の規則と、node-semver の範囲の書き方に従います。

無料 ブラウザで動作 2026年11月10日火曜日確認済み

1.4.0のような、3つの数字からなるバージョンです。必要に応じて、-プレリリース や +ビルド の部分も付けられます。

最初のバージョンと順序を比べる別のバージョンです。空欄にすると、比較をしません。

1つ上げる部分です。その下の部分は0に戻ります。

^1.3.0、~1.2、>=1.2.0 <2.0.0のような npm の範囲です。空欄にすると、確認をしません。

結果

番号を上げた後のバージョン — 選んだ番号上げの後のバージョンです。
順序 — SemVer の優先順位で、2つのバージョンのどちらが先かを示します。
範囲の確認 — バージョンが範囲に当てはまるかどうかです。
バージョンの構成要素

範囲の読み方

このツールはブラウザ内で動作します。入力した内容が当社に送信されることはありません。

使い方

  1. バージョンに1.4.0のようなバージョンを入力します。必要なら、比べる相手を比較する相手に入力します。
  2. 番号を上げるを選ぶと、次のバージョンが分かります。プレリリースの番号上げでは、プレリリースの名前に名前を入力します。
  3. 範囲を入力すると、バージョンが当てはまるかを確認できます。範囲の読み方を読むと、範囲の各部分の意味が分かります。
  4. 求める答えに応じて、番号を上げた後のバージョン、順序、範囲の確認を読みます。

バージョンの順序

SemVer 2.0.0は、メジャー、マイナー、パッチの番号を数として比べます。プレリリースのタグが付いたバージョンは、タグのない同じバージョンより前に来ます。プレリリースの識別子は1つずつ比べられます。数字は数として、文字は ASCII の順で比べ、数字は文字より前に来ます。+ の後のビルドメタデータは、順序に数えません。

  • 仕様書の例の順序は次のとおりです:1.0.0-alpha、1.0.0-alpha.1、1.0.0-alpha.beta、1.0.0-beta、1.0.0-beta.2、1.0.0-beta.11、1.0.0-rc.1、1.0.0。
  • v1.4.0のように先頭に v が付いていても受け付けますが、v はバージョンの一部とは見なしません。

番号の上げ方

メジャーの番号上げは、最初の数字を1つ上げ、残りの2つを0にします。マイナーとパッチも、それぞれの部分について同じことをします。まだプレリリースのバージョンは、番号上げによって正式版になる場合、タグを失います。node-semver と同じく、1.0.0-alpha はメジャーの番号上げで1.0.0になります。プレリリースの番号上げでは、指定した名前で次のパッチを始めるか(例:1.4.1-beta.0)、既存のプレリリースの末尾の数字を増やします(例:beta.1から beta.2)。

範囲の読み方

範囲の書き方は、npm が使う node-semver に従い、その README の文法 に従います。各形式は比較の条件を表します。^1.3.0は >=1.3.0 <2.0.0-0を、~1.2.3は >=1.2.3 <1.3.0-0を、1.2.x は >=1.2.0 <1.3.0-0を意味します。1つの組の中の比較は、すべて成り立たなければなりません。|| で結ばれた組は代わりの候補になり、空の組は、* と同じく任意のバージョンを受け付けます。

プレリリースと範囲

1.5.0-beta.1のようなプレリリースのバージョンは、その組の比較の1つが同じ1.5.0をプレリリースのタグ付きで指定している場合にだけ、範囲に当てはまります。そのため、未完成のバージョンは既定で範囲の外に置かれます。これは node-semver の README が説明しているとおりで、このページの確認もこの規則に従います。

例:1.4.0をマイナーで上げ、^1.3.0 || 2.x と照合

バージョン1.4.0は1.4.0-beta.2より高くなります。正式版はそのプレリリースより高いためです。マイナーの番号上げで1.5.0になります。範囲 ^1.3.0 || 2.x は、>=1.3.0 <2.0.0-0または >=2.0.0 <3.0.0-0と読み、1.4.0は最初の組に当てはまります。

入力 結果
1.4.0と1.4.0-beta.2の比較 1.4.0は1.4.0-beta.2より高いです。
1.4.0のマイナーの番号上げ 1.5.0
1.4.0と ^1.3.0 || 2.x の照合 1.4.0は ^1.3.0 || 2.x に当てはまります。

よくある質問

1.0.0+build.1は1.0.0と同じバージョンですか?

順序と範囲の確認では、同じ扱いになります。SemVer の優先順位では、+ の後のビルドメタデータは数えないため、2つは順序の中で同じ位置にあります。ページはビルドの部分も表示するため、確認できます。

なぜ1.4.0-beta.2は1.4.0より低いのですか?

プレリリースは安定しておらず、その番号が約束する互換性を満たさない場合があるため、SemVer は同じ番号の正式版より前に置きます。そのため、1.4.0-beta.2は1.4.0より前に、1.4.0は1.4.1より前に来ます。

^1.3.0は2.0.0を受け付けますか?

いいえ。キャレットの範囲は、左から最初の0以外の数字を固定するため、^1.3.0は1.3.0以上、2.0.0未満を意味します。例のように2つ目のメジャーも受け付けたい場合は、|| 2.x も書いてください。

~1.2と ^1.2の違いは何ですか?

チルダの範囲 ~1.2は >=1.2.0 <1.3.0-0を意味するため、1.2.9のようなパッチの変更は受け付けますが、1.3.0は拒否します。キャレットの範囲 ^1.2は >=1.2.0 <2.0.0-0を意味するため、1.3.0と1.9.9も受け付けますが、2.0.0は受け付けません。

範囲が1.5.0-beta.1を拒否するのはなぜですか?

プレリリースは、>=1.5.0-beta.0のように、同じバージョンをプレリリースのタグ付きで指定する比較がない限り、範囲から外されます。プレリリースは速く変わり、問題を起こすことがあるため、node-semver はこの選択をしています。

入力したバージョンはサーバーに送られますか?

いいえ。バージョン、範囲、比較は、お使いのブラウザの中で読まれ、確認されます。入力した内容が保存されることはありません。

出典

数値と文章の最終確認日:2026年11月10日火曜日。

当サイトの運営に必要なCookieを使用します。お客様の同意があれば、Googleは広告用Cookieを使い、パーソナライズ広告を表示します。拒否された場合も広告は表示されますが、パーソナライズはされません。