npm - Peer Dependency 관련 공부

반응형

프론트팀 회의 중 peer dependency 라는 내용이 나왔다.
패키지 버전 종속성을 의미하는 dependency 내용은 알았으나, 처음 듣는 내용이여서 생소했다.

오늘은 peer dependency 가 뭔지 공부하고 해당 내용을 포스팅하고자 한다.

dependency

일반적으로 개발자들이 알고 있는 dependency 이다.
프로젝트에 사용된 패키지들이 있는데 이를 종속성을 관리한다.

기본적으로 런타임, 빌드 할 때 이 패키지들이 사용된다.
프로젝트가 빌드될 때 패키지들 또한 함께 번들에 포함되어서 배포가 된다.

peer dependency

패키지를 설치했을 때 다른 패키지의 종속성을 명시할 때 사용된다.
프로젝트에서 실제로 패키지를 직접 불러오지는 않지만 호환성이 필요한 경우에 명시한다.


예를 들어 프로젝트에 A, B 패키지를 설치하였다. (이때 A 패키지는 버전이 1.0.0 이다.)
B 패키지 내부에는 A 패키지를 사용하고 있는데, 이 버전은 2.0.0 을 바라보고 있다.

현재 설치된 A 패키지는 1.0.0 이고, B 패키지에서 요구하는 A 패키지의 버전은 2.0.0 이다.

그렇다면 해당 기능이 정상적으로 동작하지 않을 수 있기 때문에, A 패키지가 2.0.0 으로 설치되어야 한다고 안내해야한다.


이 내용이 바로 peer dependency 이다.

React 를 이용하는 라이브러리들은 대부분 peer dependency 가 지정되어 있다.

"peerDependencies": {
  "react": "^17.0.1",
  "react-dom": "^17.0.1"
}

레퍼런스

fathom > npm peer dependency

반응형