当サイトは、アフィリエイト広告を利用しています
npmまたはyarnを使用してpackageをインストールすると
package.jsonが作成される。
インストールしたpackageのversionにつくキャレット(^)やチルダ(~)に
ついて調べてみたことまとめる
インストールしたpackageのversionはセマンティック バージョンニングという
APIのバージョンの付け方に関するルールに元づいて書かれている。
例えば下記のような場合は
"dependencies": {"gatsby": "4.23.1",},
ということになる。
それぞれのバージョンの意味は下記引用参照
バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、
- APIの変更に互換性のない場合はメジャーバージョンを、
- 後方互換性があり機能性を追加した場合はマイナーバージョンを、
- 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。 プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。
packageのverisonのsemverにチルダ^やキャレット~をつけることで
そのパッケージのアップデートが可能な範囲を指定することができる
無印の場合はバージョン固定となる。
「yarn upgrade」や「yarn install」した場合記載のversionがインストールされる
"dependencies": {"gatsby": "4.23.1",},
キャレットがついているの場合はメジャーバージョンが固定となる
"dependencies": {"gatsby": "^4.23.1",},
マイナーバージョンとパッチバージョンに最新があれば
「yarn upgrade」や「yarn install」した際に下記のように最新に更新される
"dependencies": {"gatsby": "^4.24.2",},
※yarn upgradeの場合はpackage.jsonは更新されず、yarn.lockが更新される
xを使って下記のように書けばキャレットをつけたのと同じ意味になる
"dependencies": {"gatsby": "4.x.x",},
チルダがついているの場合はメジャーバージョン、マイナーバージョンが固定となる
"dependencies": {"gatsby": "~4.23.1",},
パッチバージョンに最新があれば
「yarn upgrade」や「yarn install」した際に下記のように最新に更新される
"dependencies": {"gatsby": "~4.23.2",},
※yarn upgradeの場合はpackage.jsonは更新されず、yarn.lockが更新される
xを使って下記のように書けばチルダをつけたのと同じ意味になる
"dependencies": {"gatsby": "4.23.x",},
アスタリスクがついている場合はすべてのバージョンが更新される
"dependencies": {"gatsby": "*"},
または
"dependencies": {"gatsby": ""},
空白の場合もアスタリスクと同じ扱い
バージョンに最新があれば
「yarn upgrade」や「yarn install」した際に最新に更新される
※yarn upgradeの場合はpackage.jsonは更新されず、yarn.lockが更新される
プロジェクトにインストールされているpackageのversionを上げる際に
を使う場合はpackageについているチルダやキャレットで実行結果が変わるので
覚えておいた方がよさそうです。
packageのアップデート方法については下記の記事でまとめています。
下記を参考にさせて頂きました