1.
pnpm
•
B라는 패키지가 있을 때
•
내가 의존하는 패키지 A가 B를 의존하고, 내가 B를 의존할 때
◦
패키지 B가 각각 설치가 된다(같은 버전인 경우는 나도 몰루)
◦
내가 의존하는 패키지에서 nestjs/core를 사용하고, 내가 또 nestjs/core를 직접 의존할 때 서로 다른 파일에서 nestjs/core를 import하므로 서로 다른 토큰(Symbol은 유니크하니까)을 사용하게 되어 inject가 안되는 문제가 발생할 수 있다.
•
이 경우 A 패키지에서 peer dependencies로 B를 지정해주어야 내 프로젝트에서 A가 사용하는 패키지 B를 같이 사용할 수 있다.
•
peer dependencies: “나를 사용하는 쪽에서 내 의존성에 맞추도록 한다”, “내 짝꿍 디펜던시는 이거야.”, “원플러스원”
2.
비유
•
dependencies: 일촌
•
peer dependencies: 파도타기(요즘 00년생들은 파도타기 모르더라 ㅠ) → 내 의존성이 강제하는 의존성
◦
peer dependencies로
◦
의존성의 의존성의 의존성… → 사돈에 팔촌 → peer dependencies로 연결해주면 결국 같은 패키지를 본다