チルダ範囲 (~) — パッチレベルの更新のみ
セマンティックバージョニングにおけるチルダ(~)範囲を理解します。~1.2.3がパッチ更新のみを許可する仕組み(>=1.2.3 <1.3.0)を解説します。
Tilde Ranges
詳細な説明
チルダ範囲 (~) の理解
チルダ範囲はキャレット範囲に対する保守的な代替です。パッチレベルの更新のみを許可し、バグ修正は受け入れますが新機能は受け入れません。
チルダの仕組み
~MAJOR.MINOR.PATCHはパッチバージョンの変更のみを許可します:
| 範囲 | 展開形 | 許可 |
|---|---|---|
~1.2.3 |
>=1.2.3 <1.3.0 |
1.2.3, 1.2.4, 1.2.99 |
~1.2 |
>=1.2.0 <1.3.0 |
上と同じ |
~1 |
>=1.0.0 <2.0.0 |
すべての1.x(^1と同じ) |
~0.2.3 |
>=0.2.3 <0.3.0 |
0.2.3, 0.2.4, 0.2.99 |
チルダ vs キャレット
主な違いは許容される柔軟性の範囲です:
| バージョン | キャレット (^) | チルダ (~) |
|---|---|---|
1.2.3 |
<2.0.0 |
<1.3.0 |
0.2.3 |
<0.3.0 |
<0.3.0 |
0.0.3 |
<0.0.4 |
<0.1.0 |
0.2.3の場合、チルダとキャレットは同じ結果を生成します。>=1.0.0のバージョンでのみ異なります。
チルダを使うタイミング
以下の場合にチルダを選択します:
- マイナーバージョンの更新でコードが壊れた経験がある
- 依存関係が重要で安定性が機能より重要
- 特定の機能セットに固定し、バグ修正のみを求める
ユースケース
安定性が最も重要な本番環境、または依存関係のマイナーバージョン更新で以前にリグレッションが発生した場合に使用されます。