본문 바로가기

DevRoot

[npm] npm version(sementic versioning)

728x90
npm 유의적 버전에 대한 공부 기록이다.

이전 기록에서 package.json 파일을 분석한 기록이 있다.

 

[npm]npm package.json

npm이 뭘까? 프로젝트를 하면서 npm, yarn, package.json 등 무엇인지 정확히 알지 못한 채 사용했다. 때문에 이번에 정확히 공부하고자 기록을 남기려고 한다. npm node package manager npm은 node.js를 위한 패

choi-records.tistory.com

버전에 대한 기록은 남기지 않았는데

이번 기록에서 버전에 대한 공부 기록을 남기려고 한다.

 

package.json에서 버전은 일반적으로 유의적 버전(sementic versioning) 방식으로 표현된다.

 

유의적 버전

핵심 규칙

[Major].[Minor].[Patch]-[label]
ex) 9.0.0

유의적 버전의 규칙은 위와 같다.

  • Major 
    • 이전 버전과 호환이 불가능할 때 숫자를 하나 증가시킨다.
    • Major 버전이 다른 패키지를 사용하고자 하면, 이전 버전과 호환하지 않는 기능(breaking change) 목록을 확인해야 한다.
  • Minor
    • 기능이 추가되는 경우 숫자를 증가시킨다.
    • 기능이 추가되었을 뿐 이전 버전의 기능을 호환하지 않는다는 뜻이 아니다.
  • Patch
    • 버그 수정 패치를 적용할 때 사용한다.
  • label
    • 선택 사항으로 pre, alpha, beta와 같이 버전에 대한 부가 설명을 붙이고자 할 때 문자열로 작성한다.

추가 규칙

유의적 버전을 사용할 때 버전이 완전히 같아야 하는 것은 아니다.

아래의 규칙을 사용하면, 의존성이 깨지지 않는 다른 버전을 설치할 수 있다.

  • ver, =ver : 완전히 일치하는 버전
  • >ver : 큰 버전
  • >=ver : 크거나 같은 버전
  • <ver : 작은 버전
  • <=ver : 작거나 같은 버전
  • ~ver : 버전 범위(지정한 마지막 자리 내 범위)
    • ~1.0, 1.0.x : 1.0.0 이상 1.1.0 미만의 버전
  • ^ver 
    • ^1.0.2 : 1.0.2 이상 2.0 미만의 버전
    • ^1.0 : 1.0.0 이상 2.0 미만의 버전
    • ^1 : 1.0.0 이상 2.0 미만의 버전

참고

 

NestJS로 배우는 백엔드 프로그래밍

> # 제이펍에서 책이 출간되었습니다. > [교보문고](https://product.kyobobook.co.kr/detail/S000200383301) / [예스24]() /…

wikidocs.net

마치며

잘못된 정보에 대한 피드백은 환영입니다.

감사합니다.

728x90

'DevRoot' 카테고리의 다른 글

[Dotenv] dotenv를 이용한 환경 변수 구성  (1) 2022.12.30
[npm]npm package.json  (0) 2022.10.31