pile·
프론트엔드·우아한형제들우아한형제들·

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

문제pnpm 모노레포에서 React 18 과 19 를 공존시키려다 `@types/react` 가 호이스팅으로 섞이며 children · ReactNode 추론이 깨지는 98개의 타입 에러가 발생했다.
접근pnpm Catalogs 로 앱별 의존성을 분리하고, `.npmrc` 의 hoist-pattern 제외로 Layer 3 호이스팅을 차단했다. peerDependencies 를 선언하지 않은 `@sentry/react` 같은 라이브러리는 packageExtensions 로 타입을 가상 주입했다.
결과모든 타입 에러를 해소하고 빌드를 복구했다. pnpm 의 3계층 node_modules 구조를 의도적으로 제어해 한 워크스페이스 안에서 React 다중 버전 공존 환경을 만들었다.
우아한형제들
우아한형제들 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

    항공 프론트엔드 구축기 (7/10): 창구를 하나만 두었습니다

    여기어때 항공 서비스 프론트엔드가 웹과 앱 웹뷰 두 환경에서 동일한 함수 호출로 동작하는 앱 브릿지 추상화 레이어를 설계한 과정을 다룬다. iOS·안드로이드 규약 차이와 "웹에 존재하지 않는 브릿지를 어떻게 호출하나"라는 문제를 단일 추상화 층으로 해결한 구현 사례다.

    요약 이어보기
    #react#typescript#webview+2