vite에서 절대경로를 설정해 주기 위해서는 vite.config.ts와 tsconfig.json에 alias를 설정해줘야 합니다.
이것이 귀찮다면 vite-tsconfig-paths 플러그인을 사용합니다. (관련 링크)
이번 글에서는 플러그인을 사용하지 않고 manual 하게 설정해 보겠습니다.
자주 사용하는 src, atoms, hooks, components, pages, types 폴더에 대해서 설정해 보겠습니다.
vite.config.ts
import path from 'path';
import { defineConfig } from 'vite';
import eslint from 'vite-plugin-eslint';
import react from '@vitejs/plugin-react-swc';
export default defineConfig({
plugins: [
react(),
eslint({
exclude: [/virtual:/, /node_modules/],
}),
],
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'@atoms': path.resolve(__dirname, 'src/atoms'),
'@hooks': path.resolve(__dirname, 'src/hooks'),
'@components': path.resolve(__dirname, 'src/components'),
'@pages': path.resolve(__dirname, 'src/pages'),
'@types': path.resolve(__dirname, 'src/types'),
},
},
});
tsconfig.json
{
"compilerOptions": {
...
/* Absolute path*/
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@atoms/*": ["src/atoms/*"],
"@hooks/*": ["src/hooks/*"],
"@components/*": ["src/components/*"],
"@pages/*": ["src/pages/*"],
"@types/*": ["types/*"],
}
},
...
}
추가로, eslint 사용 중이라면 eslintrc에도 alias 설정을 해주어야 워닝이 뜨지 않습니다.
.eslintrc.cjs
// eslint-disable-next-line no-undef
module.exports = {
...
settings: {
'import/resolver': {
typescript: './tsconfig.json',
alias: {
map: [
['@', './src'],
['@atoms', './src/atoms'],
['@hooks', './src/hooks'],
['@components', './src/components'],
['@pages', './src/pages'],
['@types', './src/types'],
],
},
...
},
...
},
};
세 파일을 왔다 갔다 봐야 해서 헷갈리지만 무사히 설정 완료!
'dev💻 > 프론트엔드' 카테고리의 다른 글
[React, Typescript] 구글 로그인 (0) | 2024.10.06 |
---|---|
[React] 인프라 설정으로 CORS 이슈 피하고 화면 캡쳐하기 (html2canvas, puppeteer, AWS S3) (0) | 2024.05.26 |
[React, vite] Vite에서 svg파일 초기 설정하기 (0) | 2023.11.09 |
[React] 브라우저 쿠키를 하나의 파일에서 관리하기 (0) | 2023.09.25 |
[React] 스크롤 높이에 반응하는 이벤트 붙이기 (0) | 2023.08.24 |