• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

package-lock 파일은 어떤 용도일까요?

22.07.13 15:42 작성 조회수 453

0

npm init 을 하게 되면 package / package-lock 두개가 생기는데

이 두개를 모두 들고 다녀야하는 것인지, 아니면 package 만 들고 다녀도 되는 것인지 궁금합니다.

package 만 들도 다녀도 된다고 하면 lock 파일은 어떤 용도로 존재하는걸까요?

답변 1

답변을 작성해보세요.

1

npm은 package.json을 읽어서 node_modules 폴더에 패키지를 설치합니다. 설치할 때마다 이 패키지 정보가 조금 다를수 있는데요.

  • 실행하는 npm 버전에 따라 패키지 설치 알고리즘이 다르기 때문
  • 유의적 버전(semver)을 사용할 경우 package.json에 명시한 버전 범위 안에서 최신 버전을 설치하기 때문

위 두 가지 이유로 설치 결과가 조금씩 다릅니다.

그래서 npm install 을 실행하면 package-lock.json 파일이 생성되는데요. 당시에 설치한 패키지 정보를 기록해 둡니다. 이것을 의존성 트리라고 하고요.

매번 npm install 을 실행할 때마다 package-lock.json 파일을 참고해 같은 의존성 트리를 보고 node_modules 폴더에 일관적인 패키지 버전을 설치하는 용도로 사용합니다.

참고: https://docs.npmjs.com/cli/v6/configuring-npm/package-locks

 

답변 감사합니다.