【npm】バージョン表記に使われる記号「^1.2.3の ^ 」と「~1.2.3の ~ 」の意味


npmのpackage.jsonを見ると「^2.7.5」や「~2.7.5」のようにバージョン情報に「 ^ 」「 ~ 」の記号がついていますが、この記号の意味をここにメモします。



バージョン情報の事前知識

バージョン情報は「2.7.5」のように「数字① . 数字② . 数字③」という形をしています。

このそれぞれの数字は下のように名前がついており、それぞれに表す意味があります。

数字①
名前:メジャー
意味:大規模な変更の回数を示す。パッケージを使っている側は多くの場合、バージョン変更に合わせてコードを書き換える必要がある。

数字②
名前:マイナー
意味:小規模な変更の回数を示す。

数字③
名前:パッチ
意味:バグの修正回数を示す。



「^」と「~」の読み方と意味

「^」

読み方:キャレット
意味 :メジャーは一致しマイナーとパッチは指定されたもの以上
例)パッケージを^2.7.5で指定した場合
  2.7.10や2.9.8はOKだが、3.2.10はNG


「~」

読み方:チルダ
意味 :メジャーとマイナーは一致し、パッチは指定されたもの以上
例)パッケージを~2.7.5で指定した場合
  2.7.10はOKだが、2.8.5はNG



参考元