TurboRepo Just-in-Time Packages 적용기 Feat. ModuleResolution
두줄요약
Turborepo JIT Packages로 공통 패키지 소스를 빌드 없이 참조하는 방식을 소개했습니다. TypeScript 모듈 해석과 Next.js 설정 충돌을 분석하고 해결 과정을 정리했습니다.
문제 상황
- Turborepo Compiled Packages 기반 공통 코드 수정 후 필수 컴파일 과정으로 인한 개발 흐름 저하
- 여러 서비스의 공통 자원을 모노레포로 통합 관리하는 환경
구조와 흐름
- Just-in-Time Packages의 소스 직접 참조와 소비 프로젝트 빌드 시점 컴파일
package.json의exports로 TypeScript·Node.js의 소스 진입점 연결moduleResolution의 node·nodenext·bundler별 패키지 해석 규칙 비교
해결 방법
- 워크스페이스 패키지의
exports를srcTypeScript 파일로 지정해 빌드 없는 즉시 반영 구성 moduleResolution: bundler전환 후exports에 공개된 경로인xstate/guards사용- Next.js 13.5 이상 업데이트로 tsconfig의 bundler 설정 강제 node 변경 문제 해소
트레이드오프
- 프로젝트 빌드 시간 증가 가능성
- 번들러 사용 프로젝트 중심의 적용 제약과 패키지 버저닝 전략 검토 필요

