SVG파일, Component 사용하기!(for Vite + TypeScript)

2025. 2. 3. 20:05·React🦄

npm

npm install vite-plugin-svgr --save-dev

devDependencies에 설치!

vite.config.ts 수정

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react-swc';
import svgr from 'vite-plugin-svgr';

export default defineConfig({
  plugins: [react(), svgr()],
  ...
});

주의사항(vite 버전 별 import 방법)

vite-plugin-svgr(4.0.0 이전 버전)

import { ReactComponent as TestSVG } from "assets/images/test.svg";

return <TestSVG />;

// index.js

export { ReactComponent as TestSVG } from "assets/images/test.svg";

// app.js
import TestSVG from "@/asset";
...
return <TestSVG />;

vite-plugin-svgr(4.0.0 이후 버전)

  • 4.0.0 이상 버전에서는 사용 방법이 살짝 다르다.
  • SVG 파일을 가져올 때, ?react라는 접미사를 붙여 앨리어싱을 건너뛰어 기본 내보내기를 사용할 수 있다.
  • 이렇게 사용할 경우 svg.d.ts 파일을 생성해야 한다.
import TestSVG from "assets/images/test.svg?react";

return <TestSVG />;

svg.d.ts 추가

// svg.d.ts
declare module "*.svg" {
  const value: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
  export default value;
}

vite 버전 별로 사용 방법이 다른 줄 몰랐다...ㅠㅠ
2일간의 고생... 보람찼다🥲

공식 문서나 stackoverflow 가 짱인거 같다ㅋㅋㅋ

index 한 파일로 관리 하려고 했는데 버전이 높아서 아쉽다..ㅠ 아마 방법이 있을 것 같은데
우선 프로젝트 만드는데 집중하고 또 찾아봐야겠다!

'React🦄' 카테고리의 다른 글

Recoil  (0) 2025.02.19
React-Hook_Form  (0) 2025.02.16
useRef는 뭘까아요~~~?  (0) 2025.01.24
'React🦄' 카테고리의 다른 글
  • Recoil
  • React-Hook_Form
  • useRef는 뭘까아요~~~?
나미쓰
나미쓰
409....Conflict
  • 나미쓰
    나미의 기록📝
    나미쓰
  • 전체
    오늘
    어제
    • 분류 전체보기 (15)
      • 웹 접근성 (0)
      • JS (5)
      • 일상 (0)
      • Typescript (4)
      • React🦄 (4)
      • PHP (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • coding
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    API
    watch mode
    PROMISE
    restapi
    axios
    contructor
    javascript 생성자
    Iterable
    JavaScript
    Vite
    타입스크립트
    optional chaining
    es6
    union type
    TypeScript
    php
    코딩공부
    학습블로깅
    svgr
    비동기통신
    비동기 함수
    react-hook-form
    typescript class
    javascript class
    image component
    생성자함수
    intersection type
    lalavel
    tsconfig
    Await
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
나미쓰
SVG파일, Component 사용하기!(for Vite + TypeScript)
상단으로

티스토리툴바