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