-
Hyphen Ranges [X.Y.Z ~ A.B.C]x
X-Ranges [1.2.x] / [1.X] / [1.2.*]~
Tilde Ranges [~.1.2.3] / [~1.2] / [~1]^
Caret Ranges [^1.2.3] / [^0.2.5] / [^0.0.4]1.2.3 - 2.1.1
'>=1.2.3 <= 2.3.4
1.2.3 보다 커야하고, 2.3.4 보다 같거나 작아아 한다.
1.2 - 2.3.3
첫 번째 버전에 생략이 있다면 0을 포함한다.
'>=1.2.0 <= 2.1.1
1.2.3 - 2.3
두 번째 버전에 생략이 있다면 major, minor 가 일치하는 경우만 포함한다.
'>= 1.2.3 < 2.4
1.2.3 - 2
두 번째 버전에 생략이 있다면 2로 시작하는 major 가 일치하는 경우만 포함한다.
'>= 1.2.3 < 3
*
'> 0.0.0 모든 버전에 충족한다.
1.x
major와 minor의 업데이트 허용 >= 1.0.0 < 2.0.0
1.2.x
patch의 업데이트 허용 >= 1.2.0 < 1.3.0
Minor version이 지정되어 있다면 patch의 변경을 허용한다.
그렇지 않은 경우 minor 변경을 허용한다.
~.1.2.3
minor version이 지정 => patch 변경을 허용
'>= 1.2.3 < 1.(2+1).0
'>= 1.2.0 < 1.3.
~1.2
minor version 지정 => patch 변경 허용 (위와 같음)
~1
minor version 지정 안됨 => minor 변경 허용
'>= 1.0.0 < 2.0.0
~1.10.0-alpha.1
minor version 지정 => patch 변경 허용
이 때 1.10.0 과 일치하는 prerelease tag도 같이 포함
'>= 1.10.0-alpha.1 < 1.11.0
1.10.0-alpha.2 포함o 1.11.0-alpha.2 포함x
major, minor, patch
에서 가장 왼쪽에 있는 0이 아닌 요소를 제외한 변경 허용
2.0.0 버전 = minor & patch 업데이트 허용
2.X 버전 = patch 업데이트 허용
2.X.X 버전 = 업데이트 허용하지 않음.
^1.2.3
major가 0이 아닌 요소이기에 minor & patch 업데이트 허용
'>= 1.2.3 < 2.0.0
^0.2.3
minor가 0이 아닌 요소이기에 patch 업데이트 허용
'>= 0.2.3 < 0.3.0
^0.0.3
patch가 0이 아닌 요소이기에 업데이트 허용 하지 않음
^1.2.3-beta.2
major가 0이 아닌 요소이기에 minor & patch 업데이트 허용
또한 1.2.3 버전이 일치하는 경우 prerelease tag 포함.
'>=1.2.3-beta.2 < 2.0.0
^0.0.3-beta
0.0.3의 prerelease만 허용
0으로 표기하지만, major와 minor version 둘 다 0인 경우 해당 값 내에서 유연성이 허용
^1.2.x
major가 0이 아닌 요소이고, 0으로 채워진다.
'>=1.2.0 < 2.0.0
^0.0.x
major와 minor가 0이기 때문에 해당 값 내에서 유연성 허용
'>=0.0.0 < 0.1.0
^0.0
위와 내용 같음
'>= 0.0.0 < 0.1.0
내용 참고한 링크 (감사합니다.)
https://velog.io/@slaslaya/Semantic-Versioning-2.0.0-MAJOR-MINOR-PATCH%EC%99%80-%EB%AA%85%EC%84%B8%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC