Posts 패키지 매니저 잠금 파일(lock)
Post
Cancel

패키지 매니저 잠금 파일(lock)

npm이나 yarn을 사용하면 package-lock.json, yarn.lock 파일이 생성되는 것을 확인할 수 있다.

왜 그럴까?

자세한 내용은 여기에서 확인할 수 있는데 간략하게 정리해보자면 다음과 같다.

  • 잠금 파일(lock)이 생긴 이유는 설치할때마다 동일한 패키지 버전을 보장하기 위해서이다.
  • 왜냐하면, 시맨틱 버저닝 규칙에 따른 ~, ^ 때문이다.
  • 예를 들어, "react": "^16.8.2" 이렇게 리액트 버전을 지정할 경우 16.8.2 이상 17.0.0 미만의 범위로 버전이 지정된다.
  • 잠금 파일이 없을 경우에, 오늘 설치하는 경우엔 16.8.2 가 다운받겠지만 6개월 뒤에 새로운 신입이 들어와서 다운을 받을 경우엔 그 당시의 최신 버전인 16.9.0 이 다운 받아진다.(위 예시는 임의로 지어낸 예시이다.)
  • 이는 다양한 문제를 야기한다. 버전 이슈로 인해 개발 서버에서는 오류가 발생하나, 로컬 PC에서는 정상적으로 동작할 수 있게 되고 같이 협업하는 개발자들끼리도 혼선이 오게된다. (16.9.0버전에서는 a라는 기능이 사용 가능하지만, 16.8.2에서는 안되는 경우)
  • 이러한 문제들로 인해 잠금 파일(package-lock.json, yarn.lock)이 만들어지게 되었고, 이를 통해 최초 패키지가 설치될때의 버전을 기록하게 되어, 6개월 뒤에 새로운 신입이 들어온다 했을때, 잠금파일에 명시된 패키지 버전에 따라 다운 받게 되어 모두 동일한 환경을 가질 수 있게 되는 것이다.

출처

This post is licensed under CC BY 4.0 by the author.

[Webpack] resolve alias 설정

모노레포