인프런 커뮤니티 질문&답변

아로마홈키퍼님의 프로필 이미지
아로마홈키퍼

작성한 질문수

테스트주도개발(TDD)로 만드는 NodeJS API 서버

npm 1

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

작성

·

554

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

 

답변 감사합니다.

아로마홈키퍼님의 프로필 이미지
아로마홈키퍼

작성한 질문수

질문하기