프로젝트에 설치된 노드 모듈들의 의존성 트리를 기록하고 있음.
git 저장소에 node.js 프로젝트를 커밋할 때 보통 node_modules
폴더는 부피가 커서 commit에 포함시키지 않습니다.이 때 package-lock.json
파일은 꼭 함께 커밋을 해주어야 합니다. 다른 팀원이 이 프로젝트를 처음 pull 받아서 npm install
을 했을 때 개발 당시의 동일한 버전의 모듈들이 설치됨을 보장하기 위함입니다. express 모듈을 프로젝트에 설치하게 되면 package.json
파일에 "express": "~4.16.1"
처럼
Tilde Ranges
표기법으로 버전이 명시됩니다. 4.16.1
버전보다 높은 버전이 npm에 publish 된다면 node install
명령어로 로컬에 모듈을 설치하면 더 높은 버전의 express 모듈이 로컬에 설치가됩니다. 이는 개발당시의 버전과 달라져 예기치 않던 버그가 발생할 수 있습니다. 따라서 package-lock.json
은 의존성 관리를 위해 필수이며 꼭 git 저장소에 commit
해야하는 대상입니다.
출처: https://simsi6.tistory.com/56 [곰돌푸우]