npm audit
でバージョン更新する際のメモです。
以下の表記の違いについて記載します。
{{ サンプル:{ "a":"1.2.3", "b":"<1.2.3", "c":"<=1.2.3", "d":">1.2.3", "e":">=1.2.3", "f":"1.2.x", "g":"1.2.X", "h":"1.2.*", "i":"1.2.3-1.4.5", "j":"^1.2.3", "k":"~1.2.3", } }
特徴的な記号
~ (チルダ) とは?
- バージョン番号に
~
が添えられている場合、メジャーバージョンまでしか記載されていない場合と、マイナーバージョン以下が記載されている場合で振る舞いが変わります。- マイナーバージョンが指定されている場合、パッチレベルの変更を許可
メジャーバージョンまでが指定されている場合、マイナーレベルの変更を許可
表記 更新の範囲 解釈 ~1.2.3 1.2.3以上、1.(2+1).0未満 マイナーバージョン以下まで記載
(パッチバージョンまで)~1.2 1.2.0以上、1.(2+1).0未満 マイナーバージョン以下まで記載
(マイナーバージョンまで)~1 1.0.0以上、(1+1).0.0未満 メジャーバージョンまで記載 ~0.2.3 0.2.3以上、0.(2+1).0未満 マイナーバージョン以下まで記載
(パッチバージョンまで)~0.2 0.2.0以上、0.(2+1).0未満 マイナーバージョン以下まで記載
(マイナーバージョンまで)~0 0.0.0以上、(0+1).0.0未満 メジャーバージョンまで記載
^ (キャレット) とは?
0
以外の左端の数字を変更しない範囲での更新を許可する。互換性がなくなる可能性があるバージョンアップ(メジャーバージョンアップ)を回避する範囲でバージョンアップが可能
表記 更新の範囲 解釈 ^1.2.3 1.2.3以上、2.0.0未満 メジャーバージョンアップしない範囲 ^1.2. 1.2.0以上、2.0.0未満 メジャーバージョンアップしない範囲 ^0.2.3 0.2.3以上、0.3.0未満 マイナーバージョンアップしない範囲 ^0.2. 0.2.0以上、0.3.0未満 マイナーバージョンアップしない範囲
その他の記号
そこそこ登場しそうな表記をリスト化します。(感覚的に理解できると思いますが)
表記 更新の範囲 解釈 1.2.3 1.2.3 完全一致 >1.2.3 1.2.3より新しい 不等号と一緒 >=1.2.3 1.2.3以上 不等号と一緒 <1.2.3 1.2.3未満 不等号と一緒 <=1.2.3 1.2.3以下 不等号と一緒 1.2.x 1.3.0未満 パッチバージョンがワイルドカード 1.2.X 1.3.0未満 パッチバージョンがワイルドカード 1.2.* 1.3.0未満 パッチバージョンがワイルドカード 1.2.3 - 1.4.5 1.2.3以上、かつ1.4.5以下 範囲指定
公式ドキュメント
- 参考文献として以下のドキュメントを記載します。
package.json
セマンテックバージョニングの基本
- 公式サイト(、、、だと思う)
セマンティック バージョニング 2.0.0 | Semantic Versioning
バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、
1. APIの変更に互換性のない場合はメジャーバージョンを、
2. 後方互換性があり機能性を追加した場合はマイナーバージョンを、
3. 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。
プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。