내가 사용하는 라이브러리의 버전을 확인하려고 package.json을 찾아본 적은 있지만 package-lock.json은 뭐하는 파일인지 몰라서 검색해보고 쉽게 정리해보려고 한다.
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도 공유를 해야 한다.
여러 글을 읽어 보았지만 큰 흐름은 이해하겠지만 자세히는 아직 모르겠다..
'이모저모' 카테고리의 다른 글
[side effect] 사이드 이펙트 ? (1) | 2022.01.21 |
---|---|
[Web Font] 웹 폰트에 대해서 알아보자 (0) | 2022.01.14 |
Request param, query, body의 차이 (0) | 2021.11.29 |
GET, POST, PUT, DELETE 간단한 정리 (2) | 2021.09.25 |
변수 표기법 - 파스칼 케이스, 카멜 케이스, 스네이크 케이스 (0) | 2021.09.13 |