gatsby-image에서svg 사용하기

gatsby-image에서svg를 사용하고 싶을 때 필기에 빠졌어요.

문제.


같은 방식으로svg의 다른 확장자 (png,jpg) 의 그림을 얻을 수 있으며,gatsby-image로 표시하려고 해도 표시할 수 없습니다.
const Index = () => {
  const images = useStaticQuery(graphql`
    query {
      file(relativePath: { eq: "like.svg" }) {
        childImageSharp {
          fluid {
            ...GatsbyImageSharpFluid
          }
        }
      }
    }
  `);
  return (
    <div>
      <Img fluid={images.file.childImageSharp.fluid} />
    </div>
  );
};

해결책


svg를 사용할 때childImageSharp가 아니라publicURL을 가져와 탭으로 표시합니다.
const Index = () => {
  const image = useStaticQuery(graphql`
    query {
      file(relativePath: { eq: "like.svg" }) {
        publicURL
      }
    }
  `);
  const { publicURL } = image.file;
  console.log(publicURL); ///static/e152474a47557a24b12490f46840ebb7/like.svg
  return (
    <div>
      <img src={publicURL} width="100px" height="100px" alt="like" />
    </div>
  );
};

잘 표현했어.너무 좋아요.😘

gatsby-image에서svg가 지원되지 않음


issue
gatsby-plugin-sharp/gatsby-image doesn't handle SVGs or GIFs. The fluid query (in your case) creates multiple images from 0px to 1060px (+ bigger sizes for retina). That wouldn't make sense with SVGs as they're vector files and don't need different sizes - they can scale indefinitely without loss of quality.
이런 댓글이 있습니다.
의역하면gatsby-plugen-sharp와gatsby-image는svg와gif를 처리하지 않습니다.flidquery는 0px에서 1060px의 여러 이미지를 생성하지만svg는 벡터 이미지이기 때문에 필요없습니다.
그렇습니다.
즉svg 형식을 받아들이지 않는query를 던져서null이 돌아왔다는 것이다.

원래gatsby-image,gatsby-plugen-shop은


원래 분위기 속에서 이 라이브러리들을 사용한 것 같아서 선뜻 조사해봤어요

gatsby-plugin-sharp


이것은 Sharp 이미지 처리 라이브러리를 바탕으로 이미지 처리 기능을 제공하는 플러그인입니다.다른 Gatsby plugens에 이용된 수준 낮은 조수인 것 같다.

이른바 Sharp


큰 이미지를 다양한 크기의 JPEG, PNG, 웹P 이미지로 변환하는 프로그램 라이브러리인 것 같다.

gatsby-image


Gatsby의 GraphiQL queries를 사용하여 그림을 불러오는 최적화된 라이브러리입니다.그림 변환은gatsby-plugen-shap을 사용합니다.

감상


각 라이브러리가 어떤 것인지 처음부터 잘 읽으면 피할 수 있는 오류다.
그런데 처음부터 도서관의 개요를 읽는 게 귀찮았어요.😩

참고 문헌

  • gatsby image svg not found - Stack Overflow
  • gatsby image plugin SVG · Issue #10297 · gatsbyjs/gatsby
  • gatsby-image | Gatsby
  • gatsby-plugin-sharp | Gatsby
  • lovell/sharp
  • 좋은 웹페이지 즐겨찾기