협업을 할 때는 Package-lock.json 파일도 커밋해주자.

June·2022년 1월 13일
1

wecode TIL

목록 보기
9/20

Package-lock.json파일에 대해 궁금한 점이 생겨서 찾아보다가 참고하기 좋은 글을 보게 되어 갖고 왔습니다.

PACKAGE-LOCK.JSON 파일이란?

node_modules 트리나 package.json 파일을 수정하게 되면 자동으로 생성되는 파일입니다.

협업을 하기위해 우리는 같은 package.json을 사용해서 각자의 컴퓨터에 같은 패키지들을 설치해서 같은 개발환경을 구성하게 되는데요. package-lock.json은 패키지들의 버전 정보를 저장하고 협업할 때 같은 패키지 버전을 다운받을 수 있도록 도와줍니다.

시나리오 1 : PACKAGE-LOCK.JSON 파일을 소스 저장소에 커밋하지 않은 경우

  1. 박과장이 npm으로 프로젝트를 만들어서 git에 소스코드를 push 합니다. 이 때 node_modules 폴더를 제외하고package.json 파일만 커밋합니다.

  2. 김대리는 소스 코드를 pull 하고 npm install을 실행합니다.

  3. 의존성 트리의 일부 버전이 박대리와 다르게 설치됩니다. 프로그램 실행시 오류가 발생합니다.

  4. 김대리는 오늘도 야근을 합니다.

시나리오 2 : PACKAGE-LOCK.JSON 파일을 소스 저장소에 커밋한 경우

  1. 박과장이 npm으로 프로젝트를 만들어서 git에 소스코드를 push 합니다. 이 때 node_modules 폴더를 제외하고 package.json 파일과 package-lock.json 파일을 같이 커밋합니다.

  2. 김대리는 소스 코드를 pull 하고 npm install을 실행합니다.

  3. 의존성 트리가 박대리가 셋팅한 환경과 동일하게 설치됩니다.
    프로그램이 정상적으로 실행됩니다.

  4. 김대리는 정시 퇴근을 합니다.

Package-lock 파일은 이렇게 관련된 패키지 버전들을 자동으로 관리하는 역할을 합니다. 😀

https://hyunjun19.github.io/2018/03/23/package-lock-why-need/

profile
천천히, 꾸준히 :)

0개의 댓글