5월 6일 프리온보딩 4일차

김학률·2022년 5월 6일
0
post-thumbnail

오늘 한 일

오늘은 쉬는 날이지만 팀플엔 쉬는 날은 없다!
오늘은 팀원들의 PR을 피드백 및 관리했다.
그러다보니 한 가지 큰 문제점이 생긴 것을 알아챘다.

공부한 것

package-lock.js?

위에서 말한 문제는 npm package를 관리하는 package-lock.json 파일이다.
사람들의 pr을 살펴보니 package-lock.json 파일이 많이 달라서 이대로 merge를 하다가는 충돌이 날 것이라고 판단했다.
그래서 package-lock.json 이란??
우리는 보통 npm install을 해서 라이브러리를 설치하게 된다.
이때 package.json 파일에 적혀진 라이브러리들이 설치된다.
그럼 package-lock.json 파일은 왜 있는 것일까?
package.json 파일에 적혀진 버전은 정확한 버전이 적혀 있는 것이 아니라고 한다.
정확히 말하면 range version 이라고 해서 "몇 버전 이상의 package를 사용할 것이다."라고 명시해 준다.
그래서 가끔 팀원과 버전이 맞지 않을 때가 있다.
이것을 방지하기 위해 package-lock.json 파일을 이용한다.
package-lock.json 파일은 정확한 버전을 명시해서 다른 버전을 다운받지 않는다.
그럼 우리는 왜 package-lock.json가 다른 상태로 개발하고 있었을까?
왜 그럴까 모두의 package-lock.json 파일을 보면서 비교하니 "lockfileVersion"이 어떤 사람은 1이고 어떤 사람은 2로 되어 있었다.
그리고 1인 사람끼리와 2인 사람끼리는 거의 비슷한 모양이었다.
알고보니 모두의 npm 버전이 달랐기 때문이었다.
npm 7버전 이후로 "lockfileVersion"이 2로 바뀌었다.
그래서 협업을 위해 우리는 npm 버전을 모두 같게 변경했고 이후로 pr 충돌이 줄어든 것을 확인했다.

profile
골고루 건드려보면서 몸으로 부딪쳐 경험하는 걸 선호하는 개발자입니다.

0개의 댓글