studying
Vite + TypeScript 절대경로 설정하기
Kassy_kim
2024. 3. 18. 00:36
개발을 하다보면 절대경로가 필요해지는 순간이 온다.
폴더구조의 깊이가 생기면서 보기에 지저분해지는 import 문이 생기기때문이다.
예를들면, 요론느낌의 연속이 계속 되면 엄청 지저분해지는건 순식간이다!
import Input from '../../../components/Input';
사실 지금은 프로젝트 규모가 작아서 엄청 복잡하고 지저분한 코드는 아니지만, 나중에는 복잡하고 가독성이 떨어지게 될 것이다. 이를 방지하기 위해서 절대 경로를 설정하려고 한다.
여러 개발환경 중에서 나는 Vite + TypeScript 조합으로 절대경로를 설정하는 법을 기록해두려한다!
우선 내가 찾아본 방법 중에 플러그인을 설치하는 방법도 있는데 나는 프로젝트의 규모가 크지 않아서 tsconfig.json파일과 vite.config.ts파일만 수정해서 개발했다.
플러그인 중에는 vite-tsconfig-paths가 있는데 이 플러그인의 장점은 alias를 하나씩 설정해주지 않아도 된다는 점이다.
tsconfig.json
"compilerOptions": {
// ...
"baseUrl": "./src",
"paths": {
"@components/*": ["components/*"],
"@pages/*": ["pages/*"],
"@types/*": ["types/*"],
"@hooks/*": ["hooks/*"],
"@assets/*": ["assets/*"]
},
// ...
}
vite.config.ts
export default defineConfig({
plugins: [react()],
resolve: {
alias: [
{ find: "@", replacement: "/src" },
{ find: "@components", replacement: "/src/components" },
{ find: "@pages", replacement: "/src/pages" },
{ find: "@types", replacement: "/src/types" },
{ find: "@hooks", replacement: "/src/hooks" },
{ find: "@assets", replacement: "/src/assets" },
],
},
});
위 코드들은 폴더구조에 따라서 달라질 수 있으며, 현재 진행하고 있는 프로젝트의 폴더구조 형태에 따라 작성된 코드이다.
├─ src
│ ├─ App.tsx
│ ├─ assets
│ ├─ components
│ │ └─ ###.tsx
│ ├─ hooks
│ │ └─ ###.ts
│ ├─ index.css
│ ├─ main.tsx
│ ├─ pages
│ │ └─ ###.tsx
│ ├─ types
│ │ └─ ###.d.ts
│ └─ vite-env.d.ts
├─ tsconfig.json
├─ tsconfig.node.json
└─ vite.config.ts
내가 여기 작업하면서 실수 했던 부분이 vite.config.ts 여기서 find에는 별칭을, replacement에는 절대 경로를 입력해야하는데 별칭을 다르게 설정해서 계속 아래와 같은 에러가 발생했던 것이다.

단순히 별칭 문제인데 이 에러를 검색했더니 다른 원인들이 나와서 빙빙 둘러왔다!
@ 하나만 수정하면 되는 문제인데,, 허탈했지만 해결! 🙌