728x90
npm 유의적 버전에 대한 공부 기록이다.
이전 기록에서 package.json 파일을 분석한 기록이 있다.
버전에 대한 기록은 남기지 않았는데
이번 기록에서 버전에 대한 공부 기록을 남기려고 한다.
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 미만의 버전
참고
마치며
잘못된 정보에 대한 피드백은 환영입니다.
감사합니다.
728x90
'DevRoot' 카테고리의 다른 글
[Dotenv] dotenv를 이용한 환경 변수 구성 (1) | 2022.12.30 |
---|---|
[npm]npm package.json (0) | 2022.10.31 |