1. path 관련 npm 설치
npm install -D @types/node
2. vite.config.ts 파일 설정
- import path from 'path'
- resolve 추가
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import svgr from 'vite-plugin-svgr'
import path from 'path'
// https://vite.dev/config/
export default defineConfig({
plugins: [react(), svgr()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@components": path.resolve(__dirname, "./src/components"),
"@css": path.resolve(__dirname, "./src/assets/css"),
"@assets": path.resolve(__dirname, "./src/assets"),
"@types": path.resolve(__dirname, "./src/types"),
},
extensions: [
".js",
".jsx",
".ts",
".tsx",
".svg",
".png",
".jpg",
".jpeg",
".gif",
".css",
],
},
})
3. tsconfig.app.json 파일 설정
- "paths" 부분 추가 하면 됨
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true,
"paths": {
"@/*": ["./src/*"],
"@pages/*": ["./src/pages/*"],
"@contents/*": ["./src/contents/*"],
"@components/*": ["./src/components/*"],
"@utils/*": ["./src/utils/*"],
"@css/*": ["./src/assets/css/*"],
"@assets/*": ["./src/assets/*"]
}
},
"include": ["src"]
}
4. import 에서 적용 방법
import Home from './assets/home.svg?react' //기존 코드
import Home from '@assets/home.svg?react' //변경 코드
'프로그래밍 언어 > React' 카테고리의 다른 글
[React] React + Vite + Ant Design 설정 방법 (0) | 2025.03.06 |
---|---|
[React] 컴포넌트 간 데이터 전달(부모 <-> 자식) (1) | 2025.03.02 |
[React] 리액트 SVG 컴포넌트로 import 방법 (0) | 2025.03.01 |
[React] react + vite 리액트 포트번호 변경 (0) | 2025.03.01 |
[React] 리액트 시작하기(Vite + React + TypeScript) (0) | 2025.03.01 |