💡
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