모듈 관리자는 아래와 같은 규칙을 따라야 합니다.
- 이전 버전과 호환되지 않는 변경은 메이저 번호를 증가 시킵니다.
- 이전 버전과 호환되는 새로운 기능은 마이너 번호를 증가 시킵니다.
- 기존 기능에 대한 간단한 버그 수정은 패치 번호를 증가 시킵니다.
위 규칙들은 기본적으로 셈버 규칙을 따릅니다.
이런 규칙을 따르기 때문에 신뢰를 할 수 있고 npm에서 기본 설치시 모든 버전은 캐럿(^, caret)을 붙인 상태가 기본입니다.
캐럿 버전은 `npm update` 를 했을때 최신 마이너 버전까지 업데이트가 됩니다.
하지만 무조건적인 최신 버전도 좋은게 아니고, 패치 버전업이라고 또 다른 사이드 이펙트를 발생시키지 않을거라는 보장은 할 수 없지만, 간단한 버그 수정에 대한 혜택까지도 포기하면서 버전을 고정하는 것 또한 현명하지 못하다고 생각합니다.
(셈버는 권장이지 필수가 아닙니다. 개발자의 마음대로 버전업을 할 수도 있고, 개발자가 실수를 할 수도 있습니다. 다만 메이저한 라이브러리들은 그런 경우가 굉장히 적기 때문에 신뢰할 뿐입니다.)
Tilde(~, 틸드) 라는 기호도 있습니다. 틸드로 설정할 경우(ex "~7.7.0") 가장 최신의 패치 버전업만 진행합니다.
번외
대부분은 셈버 규칙을 따르지만 간혹 안따르는 패키지도 있습니다.
버전업을 할때는 npm update 명령어 대신 `npm-check` 패키지를 버전업이 필요한 부분에 대해서만 업데이트 하는 것을 추천드립니다.
'도구, 기술, 이론 > npm' 카테고리의 다른 글
[npm] 패키지 추천 husky (0) | 2019.12.10 |
---|---|
[npm] 패키지 추천 npm-check (0) | 2019.12.09 |