package.json に記述される チルダ ^ や キャレット ~ について
チルダ ^
と キャレット ~
package.json に記述されているバージョン情報の チルダ ^
や キャレット ~
は以下の意味になります。
- バージョン固定
- ex)
3.2.1
- ex)
- チルダ
~
: マイナーバージョンまでの挙動を保証- ex)
~3.2.1
=3.2.x
- ex)
- キャレット
^
: メジャーバージョンまでの挙動を保証- ex)
^3.2.1
=3.x.x
- ex)
- latest: 全てのバージョンでの挙動を保証
- ex)
*
=x.x.x
- ex)
npm install 時の挙動
サンプルとして 3.2.1
, 3.2.2
, 3.3.0
, 4.0.0
のバージョンがリリースされている npm パッケージ(a, b, c, d)があるとします。
そして、package.json を以下のように記述されているとします。
{
(省略)
"dependencies": {
"a": "3.2.1",
"b": "~3.2.1",
"c": "^3.2.1",
"d": "*"
},
(省略)
}
このときに npm install
コマンドを実行した場合、インストールされるバージョンは以下のようになります。
記述方法 | key | value | 理解しやすい表記 | インストールするバージョン |
---|---|---|---|---|
バージョン固定 | a | 3.2.1 |
3.2.1 |
3.2.1 |
チルダ指定 | b | ~3.2.1 |
3.2.x |
3.2.2 |
キャレット指定 | c | ^3.2.1 |
3.x.x |
3.3.0 |
latest | d | * |
x.x.x |
4.0.0 |
※ 前提として a, b, c, d のリリースされているパッケージのバージョンは 3.2.1
, 3.2.2
, 3.3.0
, 4.0.0
とした時。
豆知識
ちなみに npm のバージョン管理は セマンティック バージョニング に準拠しているはずのため、ほとんどがキャレット ^
指定のバージョンが package.json に記述されます。
Author And Source
この問題について(package.json に記述される チルダ ^ や キャレット ~ について), 我々は、より多くの情報をここで見つけました https://qiita.com/sugurutakahashi12345/items/0876ce674587515c66ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .