npm install을 하면 자동으로 붙는 물결 표시(~)와 웃음 표시(^)가 있습니다.
저절로 붙기 때문에 별 생각 없이 사용하고는 했는데 제대로 알고 사용하지 않으면 다른 사람과 협업할 때 서로 버전이 다른 환경에서 작업을 하여 불 필요한 디버깅을 하게 될 수도 있습니다.
NPM과 semver 공식 문서에 따르면,
- ~version: version과 거의 비슷한 버전으로, minor 버전은 올리지 않고 모든 앞으로의 patch 버전을 업데이트 합니다.
- ex) ~1.2.3 은 1.2.3 < 1.3.0의 릴리즈를 사용할 겁니다.
- ^version: version과 호환되는 버전으로, major 버전은 올리지 않고 모든 앞으로의 minor/patch을 업데이트 합니다.
- ex) ^2.3.4 는 2.3.4 < 3.0.0의 릴리즈를 사용할 겁니다.
cf) 업데이트 버전은 Semantic versioning에 따르면 왼쪽부터 major.minor.patch라고 읽음. 왼쪽의 숫자가 바뀔 수록 큰 규모의 업데이트를 말하며, patch는 API가 변하지 않는 작은 변경이나 버그 픽스, minor는 이전 버전과 호환 되는 새로운 API feature들, major는 이전 버전과 호환되지 않을 수도 있는 API 변경을 말합니다.
정리하자면, 더 안정적인 호환을 원한다면 ~을 사용하고, 안정성보다는 좀 더 최신 업데이트 된 버전을 사용해도 된다면 ^을 사용하시면 됩니다.
References
- What's the difference between tilde(~) and caret(^) in package.json
- 키보드 특수 문자 이름 정리
- Software versioning
제 글이 도움이 되셨다면 간단하게 '공감', '댓글' 부탁드립니다!
'Etc' 카테고리의 다른 글
Webstorm에서 파일 형식을 제대로 인식 못하는 경우 해결법 (0) | 2021.02.08 |
---|---|
Elastic Beanstalk으로 Alpha 개발 환경 빠르게 배포하기(S3, Route53, CloudFront) (0) | 2020.10.16 |
[Toy Project 1 - 웹 서비스 만들기] 3. Jenkins를 이용한 자동 배포 환경 만들기 (0) | 2020.06.13 |
[Toy Project 1 - 웹 서비스 만들기] 1. 개요 및 기본 셋팅 (0) | 2019.12.29 |
Webpack 기본 (0) | 2019.06.26 |
댓글