Resolution trace

--traceResolution 로그는 첫 실패 지점부터 읽어야 설정 원인이 좁혀진다

모듈을 찾지 못할 때는 import 문자열, 해석 전략, 후보 파일, 패키지 필드, 최종 결과를 순서대로 대조한다.
명령tsc --traceResolution으로 문제 파일 하나에서 재현한다. 첫 실패로그 전체보다 처음 틀어진 후보 경로가 설정 수정 위치를 알려준다. 대조tsconfig, package.json, 실제 파일명을 같은 줄에서 비교한다.
traceResolution 로그 진단표
구간 확인할 로그 의심 설정 수정 방향
참조 문자열 ./utils, @/utils, 패키지명 중 어느 형태인지 본다. 상대 경로, 별칭, 패키지 해석이 서로 다른 규칙을 탄다. 잘못된 import를 먼저 고치고 별칭은 paths와 맞춘다.
해석 전략 node, bundler, classic 중 실제 적용값을 본다. moduleResolution이 런타임 번들러와 다를 수 있다. 프로젝트 실행 환경과 타입 검사 전략을 같은 축에 둔다.
후보 파일 .ts, .tsx, .d.ts, index 후보 순서를 본다. 확장자 누락, 파일명 대소문자, 디렉터리 진입점이 흔한 원인이다. 실제 파일명과 export 위치를 로그의 후보 순서에 맞춰 검증한다.
패키지 필드 exports, types, main 조건을 어떤 순서로 읽는지 본다. 패키지 조건과 TypeScript 버전이 기대한 선언 파일을 못 고를 수 있다. 패키지 버전, 타입 선언, 해석 모드를 같이 조정한다.
전역 타입 types, typeRoots, @types 포함 여부를 본다. 특정 타입만 허용한 설정이 자동 포함을 끊을 수 있다. 필요한 타입 패키지를 명시하거나 제한 설정을 줄인다.
AliasbaseUrlpaths가 실제 import 형태와 맞는지 본다.
Packageexports 조건이 타입 선언까지 열어 주는지 확인한다.
Files후보 파일 순서에서 실제 존재하는 첫 파일을 찾는다.
Fail line처음 실패한 줄을 기준으로 설정 범위를 작게 고친다.