반응형
⭐️ Vite에서 SVG파일을 컴포넌트로 받아서 사용하기
🚫 오류 사항
vite 프로젝트에서 기존 방식으로 import하여 svg파일을 사용하면 아래와 같은 오류가 발생한다.
'".svg?react"' 모듈에 내보낸 멤버 'ReactComponent'이(가) 없습니다.
대신 '".svg?react"에서 ReactComponent 가져오기'를 사용하시겠습니까?ts(2614)
✅ vite-plugin-svgr 적용하기
vite-plugin-svgr설치
vite에서는 바로 svg가 적용이 안되고vite-plugin-svgr
활용해야 한다고 한다.npm install vite-plugin-svgr --save-dev
vite.config.ts
export default defineConfig({ plugins: [ react(), svgr({ svgrOptions: { // svgr options }, }), ], resolve: { alias: [ { find: '@assets', replacement: '/src/assets' }, { find: '@', replacement: '/src' }, ], }, });
plugins 배열에 svgr()을 추가한다(옵션 커스텀이 필요하다면 추가)
src/vite-env.d.ts
/// <reference types="vite/client" /> /// <reference types="vite-plugin-svgr/client" /> //추가
src/SvgTest.tsx
import SearchIconSVG from '@assets/images/svg/searchIcon.svg?react'; export const SearchIcon = () => <SearchIconSVG />;
🔹 주의사항
import부분에서 from 끝부분에 "경로?react"를 붙여주고 구조분해할당으로 별칭을 주는게 아
사용할 컴포넌트명을 지정하여 사용하면 된다.
반응형
'WEB > React' 카테고리의 다른 글
RN - styled-component 내부에 css 변수를 적용하는 방법 (0) | 2024.02.08 |
---|---|
React - 리액트에서 환경변수 개발용 배포용 나눠서 세팅하기 (2) | 2023.10.16 |
이제는 Vite로 개발을 해보자(CRA안녕...) (0) | 2023.07.17 |
Vite - 환경 변수 설정하고 불러오기 (0) | 2023.07.10 |
React - 무한 롤링 슬라이드(배너) 구현하기 (2) | 2023.07.07 |