pnpm 모노레포에서 React 19 마이그레이션하기: 숨겨진 호이스팅 레이어가 만든 타입 충돌 트러블슈팅

7
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 pnpm 모노레포에서 React 19로 부분 마이그레이션하는 과정에서 발생한 타입 충돌 문제와 해결 과정을 다룬다.

핵심 정리

  • pnpm catalogs 도입으로 워크스페이스별 React 버전 분리 시도
  • pnpm의 3계층 구조: Layer1 앱 node_modules, Layer2 .pnpm 가상 저장소, Layer3 내부 호이스팅 레이어
  • TypeScript 모듈 해석이 Layer2에서 Layer3로 올라가며 호이스팅된 @types/react(React 19)를 참조해 React 18 앱들에서 타입 오염 발생
  • .npmrc로 @types/react 및 @types/react-dom 호이스팅 차단 시도
  • 호이스팅 차단 후 서드파티에서 타입 누락으로 any 추론되는 문제 발생
  • pnpm의 packageExtensions로 누락된 peerDependencies(@types/react) 주입해 최종 해결하되 수동 주입의 유지보수 한계 존재

연관 게시글