티스토리 뷰

1. 시맨틱 버저닝 

아래와 같은 버전이 있습니다.

12.0.1

십이쩜영쩜일...

사실 각 숫자는 순서대로 메이저, 마이너, 패치 버전을 의미합니다.
(Major 버전).(Minor 버전).(Patch 버전)

 

각 숫자의 의미를 알았으니 어떤  상황에서 어떤 버전의 숫자를 증가시키는지 알아봅시다.

메이저 버전(Major Version): 기존 버전과 호환되지 않게 변경한 경우
마이너 버전(Minor version): 기존 버전과 호환되면서 기능이 추가된 경우
패치 버전(Patch version): 기존 버전과 호환되면서 버그를 수정한 경우

 

2. package.json 파일 틸트(~)와 캐럿(^)

이제 프론트엔드 개발할 때 많이 접하는 package.json파일을 살펴봅니다.

package.json은 프로젝트의 정보를 정의하고, 의존하는 패키지 버전 정보를 명시하는 파일입니다. 일반적으로 루트 디렉토리에 위치합니다. 우리가 npm install을 수행하면 package.json에 적혀있는대로 프로그램에 필요한 디펜던시를 다운로드 합니다.

 

package-lock.json파일에는 특정 버전이 명시되어 있는 반면에  package.json 파일에는 “^4.16.3”(Caret Ranges)로 버전 범위로 추가됩니다. package.json 파일로 npm install을 실행하면 현재는 4.16.3 버전이 설치되지만 express의 새로운 minor, patch가 publish 되면 동일한 package.json 파일로 npm install을 실행해도 4.17.3, 이나 4.16.4 같은 업데이트된 버전이 설치됩니다.

 

앞에서 언급한 것 처럼 이론적으로 마이너 버전과 패치버전은 기존버전과 호환되어야 하기때문에 대부분의 경우에는 문제가 없지만 ,

간혹 업데이트된 버전이 이전버전과 호환이 안되어 오류를 발생시키는 경우가 있습니다.

 

package.json에서는 버전범위로 추가된다고 했는데 이때 틸트(~)와 캐럿(^)이라는 것이 등장합니다.

 

2.1. 틸트(~)

"devDependencies": { "@vue/cli-service": "~4.3.0", },

틸트(~) :  현재 지정한 버전의 마지막 자리 내의 범위에서만 자동으로 업데이트합니다.

예를들어 ~4.3.0은 패치버전까지 지정한 경우입니다. 따라서 패치버전의 변화를 허용하여 4.3.0 이상 4.4.0 미만임을 의미합니다. 

4.3.0 <= 허용 버전 < 4.4.0 

예를들어 ~0 표기는 메이저버전까지 지정한  경우입니다. 따라서 마이너버전의 변화를 혀용하여 0.0.0이상 1.0.0 미만임을 의미합니다.

0.0.0 <= 혀용 버전 < 1.0.0 

 

2.2. 캐럿(^)

"dependencies": { "vue": "^2.6.11" }

캐럿(^) : 메이저버전은 같고, 최신 마이너 버전으로 설치한다는 의미입니다.

^1.0.2 : >=1.0.2 <2.0

^1.0 : >=1.0.0 <2.0

^1 : >=1.0.0 <2.0

 

단, 1.0 미만 버젼의 경우는 자릿수까지 체크합니다.

^0.1.2 : >=0.1.2 <0.2.0

^0.1 : >=0.1.0 <0.2.0

^0 : >=0.0.0 <1.0.0

^0.0.1 : ==0.0.1

 

3. package.json 과 package-lock.json

https://devhyun.com/blog/post/8

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함