• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (212)
      • react & next.js (12)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • package.json 의 버전 표기법 (npm)
        2022년 12월 24일
        • 루루개발자
        • 작성자
        • 2022.12.24.:06
        반응형

        package.json 에 명시된 버전 표기법에 대해 알아보려고 합니다.

         

        버전 구성

        버전은 크게 3가지로 분류 됩니다.

        Major.Minor.Patch

         

        • Major : 이전 버전과 호환성이 보장되지 않는 업데이트이며 주로 대규모 업데이트가 일어났을 때 메이저 버전이 변경됩니다.
        • Minor : 이전 버전과 호환 되면서 일부 새로운 기능이 추가되거나 수정되는 업데이트가 일어났을 때 마이너 버전이 변경됩니다.
        • Patch : 버그 수정 및 성능 개선과 관련된 업데이트가 일어났을 때 패치 버전이 변경됩니다.

         

        버전을 표기하는 방법이 여러개?

        package.json 을 보면 다음과 같이 버전 앞에  ~  또는  ^  문자가 붙은 것을 볼 수 있습니다.

        이 둘의 차이에 대해 알아보겠습니다.

         

        Tilde (틸드, ~)

        버전 앞에 ~ 표시는 tilde (틸드) 라고 부르며, 최신 패치 버전을 가리키는 데 사용됩니다. 예를 들어 package.json 에 ~2.4.1 으로 명시를 한 상태에서 패키지 저장소에 2.4.3 최신 버전이 출시된 상태라고 한다면 npm install 을 진행 할 때 설치 되는 버전은 2.4.3 이 되는 것입니다. 이 때 패키지 저장소에 메이저 및 마이너 버전보다 높은 버전이 출시 되었다 하더라도 tilde 는 앞에 메이저 버전과 마이너 버전은 유지하고 패치 버전에 대해서만 최신 버전을 가져옵니다.

         

        Caret (캐럿, ^)

        버전 앞에 ^ 표시는 caret (캐럿) 이라고 부르며, 최신 패치 버전 뿐만 아니라 최신 마이너 버전을 가리키는 데 사용됩니다. 예를 들어 package.json 에 ^2.4.1 으로 명시를 한 상태에서 패키지 저장소에 2.7.7 최신 버전이 출시된 상태라고 한다면 npm install 을 진행 할 때 설치되는 버전은 2.7.7 이 되는 것입니다. 이 때 패키지 저장소에 메이저 버전보다 높은 버전이 출시 되었다 하더라도 caret 은 앞에 메이저 버전은 유지하고 마이너 버전과 패치 버전에 대해서만 최신 버전을 가져옵니다.

         

        정리하며

        npm 에서 기본 표기법으로 사용 되는 것은 Caret (캐럿) 이라고 합니다. 아무래도 기존 버전과 호환되면서 버그 수정뿐만 아니라 수정된 기능 및 새로 추가된 기능을 사용할 수 있는 것에 초점을 두었기 때문에 그런 것이라 생각됩니다. 만약 다른 개발자 분들과 협업을 하는 상황이라면 각 개발자들은 주기적으로 npm install 을 통해 최신 버전을 맞추려는 노력이 필요할 것 같다는 생각이 듭니다.

         

        참조

        https://www.geeksforgeeks.org/difference-between-tilde-and-caret-in-package-json/

         

        Difference between tilde ( ~ ) and caret ( ^ ) in package.json - GeeksforGeeks

        A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

        www.geeksforgeeks.org

        https://medium.com/fiverr-engineering/major-minor-patch-a5298e2e1798

         

        Major.Minor.Patch

        An illustrated guide to semantic versioning

        medium.com

         

        반응형

        'Node.js & Javascript & Typescript' 카테고리의 다른 글

        호이스팅 (hoisting) (2)  (0) 2023.07.22
        타입 가드와 타입 축소에 대하여  (0) 2023.02.08
        Node.js 16.15.1 설치시 npm 에서 "config global `--global`, `--local` are deprecated" 경고 발생 현상  (0) 2022.06.21
        클로저(Closure)에 대해 알아봅시다.  (0) 2022.06.11
        웹에서 url scheme 로 앱 호출시 앱 설치 여부 감지 방법  (0) 2022.06.09
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바