package-lock.json

Eugenius1st·2023년 1월 11일
1

JavaScript

목록 보기
60/62
post-thumbnail

package-lock.json이란?

npm을 사용해서 package.json 파일 또는 node_modules 트리를 수정하면 자동으로 생성되는 파일이다.


package.json을 통해서 라이브러리 버전을 확인할 수 있는데 package-lock.json이 존재하는 이유는 뭘까?

package.json과 package-lock.json의 차이는 뭘까?

흔히 라이브러리 버전을 확인하려면 package.json을 보고 버전을 확인하곤 한다.

package.json에 적혀있는 버전은 특정 버전이 아니라 버전의 범위(version range)를 의미한다.

예를 들어 ^16.9.0 버전에서 ^은 npm install <package> 명령어의 기본 설정으로 이후 버전을 허용하지만 메이저 버전은 그대로 유지하라는 것이다.

package.json 파일로 npm install을 할 때 해당 라이브러리의 minor, patch가 publish 되면 동일한 package.json 파일로 npm install을 하게 되어도 다른 버전을 설치할 수 있다. 대부분의 경우 문제가 없겠지만 간혹 업데이트된 버전이 오류를 발생시킬 수 있다.

  • package-lock.json 파일은 파일이 작성된 시점의 의존성 트리를 가지고 있어서 이 파일의 버전을 보고 npm install을 할 수 있도록 하게 한다.

  • package-lock.json은 package.json이 수정되거나 node_modules의 구조가 변경될 때 당시의 의존성에 대한 정확하고 구체적인 정보를 가지고 자동 생성이 된다.

  • 또한 package-lock.json 파일이 존재하는 경우에는 package.json파일을 이용하지 않고 node_modules 파일을 생성한다.

결국 package-lock.json이라는 파일은
동일한 node_modules를 생성하게 해줘서 같은 의존성을 설치할 수 있게 보장하는 파일이다.

협업을 해야하는 개발자들에게는 필수 파일이 되는 것.. ㅎㅎ

결론.
여러사람들과 협업을 할 때 모두 같은 개발환경을 구성하기 위해서 package-lock.json도 공유를 해야 한다.

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글