npm package.json 버전 명시
npm 문서에는 package.json 에서 아래의 방식으로 버전 명시를 할 수 있다고 되어 있습니다.
|
여기서 가장 많이 사용되는 방식이 틸드(~)를 이용한 방식입니다.
🟦 틸드(~)
: 현재 지정한 버전의 마지막 자리내의 범위에서만 자동으로 업데이트를 진행합니다.
- ~0.0.1 : >= 0.0.1 < 0.1.0
- ~0.1.1 : >= 0.1.1 < 0.2.0
- ~0.1 : >= 0.1.0 < 0.2.0
- ~0 : >= 0.0 < 1.0
Node.js 와 npm의 모듈은 모두 Semantic Versioning(축약 SemVer)를 따르고 있습니다.
SemVer 알아보면,
- MAJOR 버전은 API의 호환성이 깨지말한 변경사항을 의미한다.
- MINOR 버전은 하위호환성을 지키면서 기능이 추가된 것을 의미한다.
- PATCH 버전은 하위호환성을 지키는 범위내에서 버그가 수정된 것을 의미한다.
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner,
PATCH version when you make backwards-compatible bug fixes.
🟩 캐럿(^)
: 캐럿(^)은 Node.js 모듈이 이 SemVer의 규약을 따른다는 것을 신뢰한다는 가정하에서 동작이 됩니다.
- 1.x.x내에서는 하위호환성이 보장되므로 그 내에서는 모두 업데이트를 진행합니다.
- ^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.0버전을 내놓기 전에는 API 변경이 수시로 발생이 됩니다.
버전이 1.0.0 미만인 경우 SemVer에서는 pre-release라고 부르는데, 0.1을 쓰다가 0.2를 사용하면 API가 모두 다를 수 있습니다. 그래서 캐럿(^)을 사용할 때 0.x.x에서는 틸드처럼 동작해서 지정한 버전 자릿수 내에서만 업데이트를 진행합니다.
- ^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
'Programming 개발은 구글로 > Web[프론트엔드&백엔드]' 카테고리의 다른 글
[Javascript] 소수점 2자리까지 표시하기 (0) | 2023.01.02 |
---|---|
[CSS] !important 사용 (0) | 2022.12.01 |
[CSS] CSS란 무엇인가? (0) | 2022.10.31 |
[Javascript] Object 배열에서 객체와 JSON 내용 확인 (0) | 2022.10.17 |
[Javascript] Timestamp to date converter(convert to timestamp) (0) | 2022.10.17 |
댓글