React
[React] vite + ts에서 svg component 사용하기
hid1
2023. 1. 30. 14:34
vite-plugin-svgr 라이브러리를 사용하여 svg 파일을 리액트 컴포넌트로 변환할 수 있다.
npm i -D vite-plugin-svgr
yarn add -D vite-plugin-svgr
// vite.config.js
import svgr from 'vite-plugin-svgr'
export default {
// ...
plugins: [svgr()],
}
import { ReactComponent as Logo } from './logo.svg'
ts에서 사용하려면 추가적으로 설정을 해야한다.
// vite-env.d.ts
/// <reference types="vite-plugin-svgr/client" />
// svg.d.ts
declare module "*.svg" {
const content: React.FC<React.SVGProps<SVGElement>>;
export default content;
}
// tsconfig.json
{
"include": ["svg.d.ts"],
}
.d.ts 파일은 기존 js 모듈을 ts에서 사용할 수 있도록 타입을 정의할 수 있는 파일이다.
모든 svg 파일에 React.FC<React.SVGProps<SVGElement>> 타입을 정의하여 ts에서 알리는 코드이다.
반응형