部分バージョンでのキャレット範囲
^1.2や^1のような部分バージョンでのキャレット範囲の動作を学びます。欠けている部分はゼロで埋められ、キャレットルールが適用されます。
Caret Ranges
詳細な説明
部分バージョンでのキャレット範囲
キャレット範囲を部分バージョン番号(マイナーまたはパッチコンポーネントを省略したバージョン)で使用できます。欠けている部分はキャレットルール適用前にゼロとして扱われます。
展開ルール
| 部分範囲 | 補完バージョン | 展開形 |
|---|---|---|
^1.2 |
^1.2.0 |
>=1.2.0 <2.0.0 |
^1 |
^1.0.0 |
>=1.0.0 <2.0.0 |
^0.2 |
^0.2.0 |
>=0.2.0 <0.3.0 |
^0.0 |
^0.0.0 |
>=0.0.0 <0.1.0 |
仕組み
- 欠けているバージョン部分は
0で補完 - 補完されたバージョンに標準のキャレットルールを適用
- 最も左の非ゼロ桁が上限を決定
部分キャレット範囲の使い時
「このメジャーラインの任意のバージョン」を簡潔に表現したい場合に便利です:
{
"dependencies": {
"express": "^4",
"lodash": "^4.17"
}
}
^4は^4.0.0と同等で、>=4.0.0 <5.0.0を意味します。
等価性について
^1と1.xは同じ結果(>=1.0.0 <2.0.0)を生みますが、キャレット形式はnpmスタイルのpackage.jsonでより一般的で、x範囲形式はより自己文書化的です。
ユースケース
メジャーバージョン内の互換リリースを受け入れたい場合のpackage.jsonでのバージョン範囲の簡略化。特にピア依存関係で有用です。