💡
package.json のチルダ(~) とキャレット(^) の違い
動機
いつも「あれ?どっちだったっけ?」となるため
セマンティックバージョニング
セマンティックバージョニングではバージョンを表す3つの数字
x.x.x
にmajor, minor, patch
という意味をもたせています
- major: 前のバージョンと互換性を損なう変更をするときに上げる数字
- minor: 前のバージョンと互換性を持つ新機能追加の変更をするときに上げる数字
- patch: 前のバージョンと互換性を持つバグ修正の変更をするときに上げる数字
npm はセマンティックバージョニングを推奨しています。
チルダ(~)表記
-
minorバージョンが指定されている場合
- patchバージョンの変更を許容
-
~1.2.3
=1.2.3 <= version < 1.3.0
(1.2.3以上,1.3.0未満)
-
minorバージョンが指定されていない場合
- minorバージョンの変更を許容
-
~1
=1.0.0 <= version < 2.0.0
(1.0.0以上,2.0.0未満)
キャレット(^)表記
1番左側にある、ゼロでないバージョニングは変えない
^1.2.3
= 1.2.3 <= version < 2.0.0
(1.2.3以上,2.0.0未満)
^0.2.3
= 0.2.3 <= version < 0.3.0
(0.2.3以上,0.3.0未満)
^0.0.3
= 0.0.3 <= version < 0.0.4
(0.0.3以上,0.0.4未満)
Discussion