
리액트 프로젝트에서 tsconfig.json을 수정했는데도 VS Code에서 alias 관련 밑줄 오류가 계속 발생하는 문제를 겪었다.
결과적으로 tsconfig.app.json도 함께 수정해야 해결되었는데, 그 과정과 원인을 정리해보았다.
처음에 tsconfig.json에서 경로 Alias를 추가했다.
tsconfig.json 변경{
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@/*": ["*"],
"@pages/*": ["pages/*"],
"@components/*": ["components/*"],
"@layouts/*": ["layouts/*"]
}
}
}
하지만
import { HomePage } from "@pages";와 같은 코드에서 빨간 밑줄이 계속 표시됨.tsconfig.json이 아니라 tsconfig.app.json이 적용됨 VS Code는 tsconfig.json을 사용하지 않고, tsconfig.app.json을 기반으로 TypeScript 설정을 해석하고 있었음
Go to Project Configuration (Ctrl + Shift + P) 실행 tsconfig.app.json이 열림즉, VS Code가 tsconfig.app.json을 기반으로 TypeScript 설정을 적용하고 있었기 때문에, tsconfig.json만 수정해서는 오류가 해결되지 않았던 것
tsconfig.app.json에도 같은 설정 추가tsconfig.app.json 수정{
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@/*": ["./*"],
"@pages/*": ["./pages/*"],
"@components/*": ["./components/*"],
"@layouts/*": ["./layouts/*"]
}
},
"include": ["src"]
}
이후 VS Code를 재시작하니 오류가 사라짐
tsconfig.app.json을 수정해야 했을까?tsconfig.json은 최상위 설정 파일로, 다른 설정 파일을 확장(extends)하는 역할만 함.src/ 내부의 TypeScript 코드(AppRouter.tsx 등)는 tsconfig.app.json의 설정을 따름.tsconfig.app.json에도 같은 설정을 추가해야 VS Code가 alias를 정상적으로 인식할 수 있음.tsconfig.json에서 바로 적용되지 않는다면, tsconfig.app.json을 함께 확인해야 한다.tsconfig.app.json을 기준으로 TypeScript 설정을 인식하기 때문에, tsconfig.json만 수정해도 반영되지 않을 수 있다.이 경험을 통해 TypeScript 설정 파일(tsconfig.json vs tsconfig.app.json)이 어떻게 적용되는지 더 깊이 이해할 수 있었다
다음에 비슷한 문제가 발생하면 바로 Go to Project Configuration을 실행해 확인해보자