그럼 A와 B 두 개발자가 협업으로 개발을 진행할 때 package.json 파일만 공유하면 어떤 문제가 생길까?
A가 package.json을 만들고 npm install을 수행하면 npm은 그 당시의 의존성에 대한 버전 정보를 확인해서 package-lock.json을 만들고 library를 설치한다. 그런데 만약 package.json만을 git에 등록했다고 생각해보자.
1년 후 B가 프로젝트에 합류 했고 이제 사용하려는 의존성의 버전이 올라가버렸다면 아마도 하위 호환성이 유지되는 새로운 라이브러리를 B는 설치할 것이고 A에게서 충돌이 발생할 것이다.
따라서 B에게 필요한 것은 package.json 뿐 아니라 package-lock.json도 필요하다. package-lock.json이 존재하면 npm은 package.json이 아닌 package-lock.json 파일을 이용해서 라이브러리를 설치하기 때문에 모든 개발자가 동일한 버전을 사용할 수 있게 된다.