로 사용하는 대신, React 컴포넌트로
SVG 파일을 <img src="..." />
로 사용하는 대신, React 컴포넌트로 <MyIcon />
처럼 직접 렌더링할 수 있도록 설정합니다.
npm install vite-plugin-svgr --save-dev
vite.config.ts
설정// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import svgr from 'vite-plugin-svgr'
export default defineConfig({
plugins: [react(), svgr()],
})
src/types/svg.d.ts
또는 src/vite-env.d.ts
파일을 만들어 아래 내용을 작성합니다:
declare module '*.svg?react' {
import * as React from 'react'
const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>
export default ReactComponent
}
🔔 이 설정은 TypeScript가 *.svg?react를 올바르게 인식하게 만듭니다.
import MyIcon from './assets/my-icon.svg?react'
function App() {
return <MyIcon width={24} height={24} fill="black" />
}