티스토리 뷰

웹/react

cra 없이 리액트에서 svg 사용하기

안양사람 2022. 3. 15. 22:48
728x90
SMALL

svg를 string으로 불러오기

~~.d.ts에 아래와 같이 string으로 불러오고 이미지 태그안에 src로 넣으면 svg를 사용할 수 있다.

declare module '*.svg' {
  const value: string;
  export = value;
// }

 

그런데 svg태그 자체가 필요한 경우가 있다. 예를 들어 fill을 한다던가... 그럴때는 조금 설정이 필요하다.

 

svg 자체 태그를 불러오기

먼저 웹팩 간단한 웹팩 설정이 필요하다.

yarn add -D @svgr/webpack

      {
        test: /\.svg$/,
        use: ['@svgr/webpack'],
      },

 

그리고 d.ts를 아래와 같이 변경해야 한다.

~~.d.ts

declare module '*.svg';

 

마지막으로 불러올 때 다음과 같이 사용하면 된다. cra를 사용하면 default 대신 ReactComponent를 넣어서 많이 사용하는데 나는 cra가 아니라서 또 따로 설정해줘야되는 것 같다.

import { default as SmallSpinner } from '@/assets/img/spinner/small-40-spinner.svg';

 

끝!!

728x90
LIST

' > react' 카테고리의 다른 글

리액트로 툴팁 컴포넌트 만들기  (2) 2022.10.31
리액트에서 테스트하기(렌더링 테스트)  (0) 2021.12.11
리액트란  (0) 2021.06.01
리액트 자동완성 및 ㅎㅎ  (0) 2021.01.26
react와 서버(nodejs express) 연결하기  (0) 2020.07.10
댓글
공지사항