개발자

Turborepo ui package svg build에러 질문입니다.

2023년 01월 04일조회 404

해결 방법 있을까요?? tsconfig.json 설정이랑 다 했는데.. 타입 지정도 했습니다. declare module "*.svg" { import React = require("react"); export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>; const src: string; export default src; }

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! 음, 완벽하게 재현을 하지는 못했지만 첫번째 사진은 declare module 부분에 export const ReactComponent가 제대로 동작하지 않는 문제 같습니다. 추가로 위에 작성하신 declare module로 svg 컴포넌트를 가져와도 import { ReactComponent as ArrowIcon} from xxx 문에서 ReactComponent가 undefined로 나오는 문제가 있더라구요. import { default as ArrowIcon } from xxx 로 바꾸신 후 실제 사용하는 리액트 컴포넌트에서는 <img src={ArrowIcon.src} />로 사용하면 되긴 했습니다. ArrowIcon이 객체 형태로 전달이 되어서 <ArrowIcon /> 형태로 바로 사용이 안되더라구요. 매번 img로 사용하기는 번거로우니 svgr 라이브러리를 사용하셔서 리액트 컴포넌트로 변경하는 걸 추천 드립니다. https://react-svgr.com/docs/what-is-svgr/ turborepo 깃허브를 찾아보니 비슷한 이슈로는 이게 있네요. https://github.com/vercel/turbo/discussions/638

profile picture

익명

작성자

2023년 01월 07일

답변 감사합니다. svgr라이브러리를 실무에서 많이 이용하는 편인가요??

손정현님의 프로필 사진

손정현

엔지니어2023년 01월 07일

실무에서는 케바케일것 같습니다. 일회성으로 여러개의 svg 파일을 컴포넌트화 하려고 cli 커맨드를 돌려본 기억은 있네요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!