본문 바로가기
Study/기타

Package-lock.json이란?

by Becoming a Hacker 2022. 11. 16.
반응형

NPM을 사용하여 Build를 하다보면, package-lock.json이 생긴 것을 확인할 수 있습니다.

 

package-lock.json 파일은 NPM을 이용하여 node_modules Tree나 package.json 파일을 수정할 경우 자동으로 생성되는 파일로써 파일이 생성된 시점의 의존성에 대한 정확한 정보를 담고 있습니다.

 

샘플 파일을 통하여 좀 더 정확하게 알아보도록 하겠습니다. typescript 정보만 나열되어 있는 packge.json 파일과 해당 파일을 통해 생성된 package-lock.json 파일입니다.

package.json

{
  "dependencies": {
    "typescript": "^4.8.4"
  }
}

package-lock.json

{
  "name": "typescript",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "typescript": "^4.8.4"
      }
    },
    "node_modules/typescript": {
      "version": "4.8.4",
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
      "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
      "bin": {
        "tsc": "bin/tsc",
        "tsserver": "bin/tsserver"
      },
      "engines": {
        "node": ">=4.2.0"
      }
    }
  },
  "dependencies": {
    "typescript": {
      "version": "4.8.4",
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
      "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ=="
    }
  }
}

 

보시는 것과 같이 package-lock.json 파일에는 좀 더 명확한 버전 정보가 들어가있습니다. 이렇게 더 정확한 버전 정보가 명시되어 있는 이유는 package.json 파일에는 version range가 사용되기 때문입니다.

 

Version Range는 아래와 같이 표현됩니다.

  • ~1.2.3 : >=1.2.3 < 1.3.0-0
  • ^1.2.3 : >=1.2.3 < 2.0.0-0

 

, 현재는 1.2.3 버전이 설치되지만, 새로운 Path가 공개되면 범위 내 다른 Version이 설치될 수 있다는 의미입니다.

 

이러한 버전 업데이트로 인해 문제가 발생할 경우는 거의 없지만, 간혹 업데이트된 버전으로 인하여 Build가 불가능하는 경우가 발생할 수 있습니다. 이런 상황을 대비하기 위해서 package-lock.json 파일에 명확한 버전 정보가 명시되어 있습니다.

'Study > 기타' 카테고리의 다른 글

AWS Volume 용량 증설 후 File System 확장 방법  (0) 2023.01.04
Presigned URL 이란?  (0) 2022.11.17
[MAC] AWS-Vault 설치 및 사용법  (0) 2022.11.10
Git 사용법 (With GitHub)  (0) 2022.08.27
Docker 명령어 정리  (0) 2022.08.06

댓글