우선 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.0https://velog.io/@iamjoo/Semantic-Versioning%EC%9D%B4%EB%9E%80