레퍼런스는 빌드 그래프를 만들고, 런타임 해석은 따로 남는다

생산자의 선언 출력, 소비자의 references, solution 진입점을 맞추면 tsc -b가 의존 순서를 계산한다. 그러나 import 문자열을 실제 JS 파일로 연결하는 일은 Node·번들러·package 설정의 책임이다.

01

core · 생산자

composite: true가 선언 출력을 요구하고 source 전체 포함 범위를 고정한다.

emit · .js + .d.ts
02

ui · 소비자

references: [{ path: "../core" }]로 타입 의존 방향을 선언한다.

core 뒤에 build
03

app · endpoint

하위 선언을 읽어 최종 JS와 타입 결과를 만들고 배포 경계로 넘긴다.

ui 뒤에 build
검증 축
생산자무엇을 내보내나
소비자무엇을 읽나
통과 신호어디서 확인하나
타입·빌드
.d.ts와 build info
referenced output 선언
tsc -b 순서·상태
런타임
실행 가능한 JS·exports
emit된 import 문자열
Node·bundler resolve
순서가 이상함tsc -b --dry --verbose로 graph와 stale 판단 확인
타입을 못 찾음생산자 dist/*.d.ts, include/rootDir/outDir부터 확인
실행 때만 실패emit된 import와 package exports·bundler alias가 같은 JS를 보는지 확인

paths 경계: TypeScript의 lookup만 알려 줄 뿐, tsc가 emit한 import 경로는 바꾸지 않는다. 타입 검사가 통과해도 런타임에 “module not found”가 날 수 있다.