yarn.lock

수경·2021년 4월 3일
0

Dev Log

목록 보기
2/5
post-thumbnail

# yarn ?

프로젝트의 의존성을 관리하는 javascript의 패키지매니저

# pakage.json

yarn을 통해 프로젝트를 설치 하면 생기는 프로젝트 정보와 의존하는 패키지 버전 정보를 담고 있는 파일
패키지 버전 정보는 dependencies , devDependencies 영역에 작성된다.

- 틸드(~) 와 캐럿(^)

pakage.json 파일의 dependencies 나 devDependencies 영역을 보면 버전들이 ~1.0.2 / ^1.0.2 이런식으로 표현 되어 있는 것을 본 적이 있을 것이다. 시맨틱 버저닝 규칙에 따라 패키지의 버전 범위를 지정하는 역할을 한다.

# 시맨틱 버저닝

소프트웨어의 버전 변경 규칙에 대한 제안
(major).(minor).(patch)
1.0.2 버전의 경우 1 = major / 0 = minor / 2 = patch

틸트 : patch 버전만 변경 가능
캐럿 : minor , patch 버전 변경 가능 / 하위호환성이 보장 될때 사용한다 / 버전이 1.0.0 미만일때는 틸트와 비슷하게 작동한다.

# yarn.lock

틸트와 캐럿 방식으로 버전의 범위가 지정이 되기 때문에 package.json 파일을 기준으로 여러명의 개발자가 프로젝트를 다루게 되면 합류 시점에 따라 서로 다른 버전의 패키지를 가져가게 된다(대참사). 이 현상을 방지하기 위해 패키지 파일을 잠궈야 한다. 그 때 필요한 것이 yarn.lock (물론 yarn 을 사용할 경우에만..)

프로젝트 진행 중에 합류하게 되는 개발자는 yarn.lock 파일을 함께 내려받아 yarn install 을 진행하면 package.json의 명시 된 패키지들의 최신 버전을 무시하고 yarn.lock 파일에 기록된 버전 정보로 통일 된 패키지들을 설치 할 수 있다.

협업 시에 패키지 업데이트를 진행한다면 yarn.lock 파일도 꼭 같이 commit push 하길 .. ~


업무를 진행하다 라이브러리 업데이트 후 yarn.lock 파일을 커밋하지 않아 협업에 방해가 되어버렸다. ㅎ
기존에 yarn.lock 파일 존재 이유에 대해 완전히 잘못 알고 있었기 때문이다.
다행이 친절하신 뒷자리 백엔드 개발자분이 알려주셨지만, 잃어버리지 않기 위해 한번 더 정리를 한다.

profile
developer

0개의 댓글