ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • package.json과 package-lock.json의 이해: 시멘틱 버전(Semantic Versioning)의 역할
    공부라도 하자 2024. 1. 11. 13:58

    package.json vs package-lock.json

    package.json

    • 정의: package.json 파일은 Node.js 프로젝트의 메타데이터, 스크립트, 의존성 목록 등을 정의합니다.
    • 의존성 관리: 이 파일에는 프로젝트에 필요한 패키지와 그 버전이 명시됩니다. 여기서 시멘틱 버전(SemVer) 규칙을 사용하여 특정 버전 또는 버전 범위를 지정할 수 있습니다.

    package-lock.json

    • 정의: npm install을 실행할 때 자동으로 생성되는 package-lock.json 파일은 설치된 모든 패키지의 정확한 버전과 의존성 트리를 기록합니다.
    • 목적: 이 파일은 프로젝트가 다른 환경에서 동일한 의존성을 가질 수 있도록 보장합니다.

     

    시멘틱 버전(Semantic Versioning)의 사용

    시멘틱 버전이란?

    시멘틱 버전(Semantic Versioning), 줄여서 SemVer는 소프트웨어 버전 번호를 할당하고 업데이트하는 규칙 시스템입니다. SemVer의 기본 형식은 다음과 같습니다

    MAJOR.MINOR.PATCH
    • MAJOR: 하위 호환되지 않는 큰 변경이나 개선이 발생했을 때 증가
    • MINOR: 하위 호환성을 유지하면서 새로운 기능이 추가될 때 증가
    • PATCH: 하위 호환성을 유지하면서 버그를 수정하거나 성능을 개선했을 때 증가

     

    package.json에서의 SemVer 사용

    package.json에서 SemVer는 의존성의 버전을 지정하는 데 사용됩니다. 예를 들어, 다음과 같이 의존성을 지정할 수 있습니다

    "dependencies": {
      "express": "^4.17.1",
      "lodash": "~4.17.20"
    }

     

    SemVer에서 사용되는 기호들

    • ^ (캐럿): 주어진 버전과 호환 가능한 최신 버전. ^1.2.3은 1.2.3 이상, 2.0.0 미만의 버전
    • ~ (틸드): ~ 뒤에 오는 버전과 호환되는 최신 버전. ~1.2.3은 1.2.3 이상, 1.3.0 미만의 버전
    • >, <, >=, <=: 버전 범위 지정
    • = : 정확한 버전 지정, 보통 기호 생략하고 단순히 버전 번호만 명시
    • || (OR 연산자): 여러 조건 중 하나를 만족하는 버전
    • - (하이픈 범위): 특정 범위 내의 버전
    • * (와일드카드): 모든 버전

     

    결론

    package.json과 package-lock.json은 Node.js 프로젝트에서 매우 중요한 파일입니다. package.json은 프로젝트의 의존성을 정의하고, package-lock.json은 이러한 의존성의 정확한 버전을 보장합니다. 시멘틱 버전은 package.json에서 의존성의 버전을 유연하게 관리할 수 있도록 도와주며, 이를 통해 프로젝트의 안정성과 호환성을 유지할 수 있습니다.

    '공부라도 하자' 카테고리의 다른 글

    npm과 pnpm  (0) 2024.01.11
    (tip) 기존 커밋에 signature만 추가하기  (0) 2023.10.26
    [Linux] xargs 명령어  (1) 2023.10.04
    (tip) local git branch 목록 한번에 삭제  (0) 2023.10.04
    (tip) git tag 삭제  (0) 2023.10.02
Designed by Tistory.