package-lock.json은 왜 필요 한가?
npm install을 이용해서 package를 인스톨하면 자동으로 package-lock.json이라는 파일이 생성된다.
용도를 몰라서 그냥 두고 있었는데, 가끔씩 이 파일이 형상관리 과정에서 충돌이 일어나 .gitignore에 추가해버렸었다.
함께 일하시는 분이 package-lock.json은 꼭 필요하다는 이야기를 해주셔서 검색을 해보니 다음과 같은 경우에 사용된다.
- npm의 버전의 다른 경우
- 의존성을 가진 패키지의 버전이 업데이터 되는 경우
- 의존성을 가진 패키지가 의존하는 패키지의 버전이 업데이트되는 경우
node_modules의 폴더의 스냅샷을 저장하여, 다른 곳에서 npm install 명령어를 실행시 package-lock.json에 명시된 의존 패키지들을 통해 node_modules를 만들어 낸다. 다만, package.json의 변경은 package-lock.json 보다 우선 된다.
주요 사항은 package-lock.json은 꼭 형상 관리에 포함 시켜야 한다.