우선 Semantic Versionin(=== SemVer)에 대해서 알아보자.
시맨틱 버져닝이란 소프트웨어의 버전 변경 규칙에 대한 제안이다.
npm에서는 Major.Minor.Patch
의 버저닝 방식을 따른다
ex) 18.2.0 일때 Major은 18, Minor은 2, Patch는 0을 나타낸다.
캐럿은 Major
을 기준으로 하여, Minor
나 Patch
버전의 하위호환성을 보장한다
캐럿의 예시를 보자
^1.0.2
: 1.0.2 <= 여기 < 2.0
^1.0
: 1.0.0 <== 여기 < 2.0
^1
: ^1.0.0 <= 여기 < 2.0
단, 버전이 1.0.0미만인 경우(pre-release)인경우엔 틸드(~)처럼 동작한다
^0.1.2
: 0.1.2 <= 여기 < 0.2.0
^0.1
: 0.1.0 <= 여기 < 0.2.0
^0.0.1
: == 0.0.1
틸드는 현재 지정한 버전의 마지막 자리 내의 범위에서만 자동으로 업데이트 한다.
Minor
버전이 지정되어있다면 Patch
레벨에서의 업데이트를 허용
Minor
버전이 지정되지않았다면 Minor
레벨에서의 업데이트를 허용
틸드의 예시를 보자
~0.0.1
: 0.0.1 <= 여기 < 0.1.0
~0.1.1
: 0.1.1 <= 여기 < 0.2.0
https://velog.io/@iamjoo/Semantic-Versioning%EC%9D%B4%EB%9E%80