티스토리 뷰
svgr을 사용하면, svg 파일을 리액트 컴포넌트로 쉽게 변환하여 관리할 수 있다.
아이콘 파일을 svg 형태로 저장해서 사용했는데, 각 아이콘들을 컴포넌트화하여 편하게 관리하기 위해서 svgr을 사용했다.
Next.js 환경에서는 기본적으로 웹팩을 사용하고 있어서,
svgr 설정만 추가해주면 바로 리액트 컴포넌트로 import 해서 사용할 수 있다.
1. 패키지 설치
npm install --save-dev @svgr/webpack
2. next.config.ts 설정
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
webpack(config) {
config.module.rules.push({
test: /\.svg$/,
use: ['@svgr/webpack'],
});
return config;
},
};
export default nextConfig;
3. package.json 세팅
2번까지만 하고 개별적으로 명령어를 입력하거나, 혹은 바로 import 해서 아이콘 파일을 사용할 수도 있지만,
여러개의 아이콘 파일을 한번에 올려서 사용하는 경우가 많으므로
package.json에 아예 명령어를 세팅해주었다.

src/app/_common/assets/icons에 있는 svg 파일을
src/app/_common/assets/icons/components 위치에 리액트 컴포넌트로 변환해준다.
4. 파일 변환
npm run svgr
터미널에 명령어를 입력해주면, 자동으로 아래와 같이 리액트 컴포넌트로 생성된다.

그리고 index.js 파일에서는 아이콘을 바로 export 해서 사용할 수 있다.

728x90
'개발 > react' 카테고리의 다른 글
| [React] React에서 CKEditor5 사용하기 (1) | 2025.07.03 |
|---|---|
| [React] 오류 - Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()? (0) | 2024.12.28 |
| [React] day.js를 활용하여 동적인 연도 Select 생성하기 (0) | 2024.12.27 |
| [react] react swiper에서 navigation 커스텀하기 (0) | 2024.10.07 |
| [React] 버튼 클릭 시 특정 영역으로 스크롤 이동 (1) | 2024.09.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
250x250