300x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- import정리
- 이슈번호자동화
- 성능 베이스캠프
- 클린코드
- 우테코
- css instead of js
- 협업
- eslint에러 자동fix
- eslint 자동화
- 크로마틱
- JavaScript
- 우아한테크코스
- IDL attributes
- webpack
- Husky
- importOrder
- vscode
- 클로저
- prettier 자동화
- git hooks
- CSS
- 프로젝트 카페인
- react
- 자바스크립트
- 카페인
- storybook
- chromatic
- 유틸함수
- string-width
- 프로젝트
Archives
- Today
- Total
FEB:)DAIN
storybook에서 svg 오류 개선 본문
728x90
Failed to execute 'createElement' on ... 오류가 났을 때, 아래의 순서대로 진행하면 된다.
1. @svgr/webpack 설치
yarn add -D @svgr/webpack
// or
npm install --save-dev @svgr/webpack
2. d.ts 파일에 코드 추가
원래 d.ts 파일에 `declare module '*svg' 만 있었는데 아래 코드를 추가해 주었다.
// assets.d.ts
declare module '*.svg' {
import React = require('react');
export const ReactComponent: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
const src: string;
export default src;
}
3. Storybook main.ts 파일에 코드 추가
interface RuleSetRules {
test: RegExp;
use?: RuleSetUseItem[];
exclude?: RegExp;
}
...
webpackFinal: async (config: Configuration) => {
const { module, resolve } = config;
const imageRule = module?.rules?.find((rule) => {
const test = (rule as RuleSetRules).test;
return test.test('.svg');
}) as RuleSetRules;
imageRule.exclude = /\.svg$/;
module?.rules?.push({
test: /\.svg$/,
use: ['@svgr/webpack'],
});
...
return config;
}
이렇게만 하면 끝이다!
728x90
'코딩 > 트러블 슈팅' 카테고리의 다른 글
Manifest: Line: 1, column: 1, Syntax error (0) | 2023.09.11 |
---|---|
[스토리북 에러] var stringWidth = require('string-width') Error [ERR_REQUIRE_ESM] (0) | 2023.08.10 |
storybook에서 msw 사용하기 (1) | 2023.07.30 |
git hooks(커밋 메시지에 이슈 번호 자동 입력)와 husky 충돌 개선 (0) | 2023.07.20 |
import React from 'react' 생략하는 법 (0) | 2023.07.01 |