nodeJS - 패키지 버전
SemVer(Semantic Versioning:유의적 버전) : 패키지 버전 번호를 어떻게 정하고 올려야 하는지 명시하는 규칙
노드 패키지의 버전은 3자리이다.
1번째 자리 : major 버전 : 하위 호환이 안 될 정도로 패키지의 내용 업데이트 시. 기존 코드와 호환이 되지 않을 수 있으니 주의해야한다. 0 : 초기 개발 중 1 : 정식 버전 2 : 1.X.X 버전과 호환이 안될 정도로 패키지 내용이 업데이트 되었을 때 3 : 2.X.X 버전과 호환이 안될 정도로 패키지 내용이 업데이트 되었을 때
2번째 자리 : minor 버전 : 하위 호환이 되는 기능 업데이트 시
3번째 자리 : patch 버전 : 새로운 기능이 추가 되었다기 보다는 기존 기능에 문제가 있어 수정 시
새 버전을 배포한 후 그 버전의 내용을 절대 수정하면 안된다. 만약 수정 사항이 생기면 major 버전, minor 버전, patch 버전 중 하나를 의미에 맞게 올려서 새로운 버전으로 배포해야한다.
버전 앞에 ^, ~, >, < 같은 문자가 붙어 있는 경우, 버전에는 포함되지 않지만 설치하거나 업데이트 할 때 어떤 버전을 설치해야하는지 알려준다.
^ : minor 버전까지만 설치하거나 업데이트 (주로 사용)
npm i express@^1.1.1
npm i express@^1.X.X
1.1.1 이상 부터 2.0.0 미만 버전까지 설치 가능
~ : patch 버전까지만 설치하거나 업데이트
npm i express@~1.1.1
npm i express@~1.1.X
1.1.1 이상 부터 2.0.0 미만 버전까지 설치 가능.
~보다 ^가 주로 사용되는 이유는 ^가 minor버전까지는 하위 호환이 보장되기 때문이다.
> : 초과
npm i express@>1.1.1
1.1.1 버전 보다 높은 버전 설치
< : 미만
npm i express@<1.1.1
1.1.1 버전 보다 낮은 버전 설치
>= : 이상
npm i express@>=1.1.1
1.1.1 버전 이상인 버전 설치
<= : 이하
npm i express@<=1.1.1
1.1.1 버전 이하인 버전 설치
@latest
npm i express@latest
npm i express@x
안정된 최신 버전 설치
@next
npm i express@next
가장 최근의 배포판 사용 (latest와 다른 점은 안정되지 않는 알파나 베타 버전의 패키지 설치 가능)
알파 버전 : 1.1.1-alpha.0
베타 버전 : 2.0.0-beta.1
출시 직전 : 2.0.0-rc.0