2.2.0 • Published 5 years ago

@korzhyk/react-svg-loader v2.2.0

Weekly downloads
34
License
MIT
Repository
github
Last release
5 years ago

react-svg-loader

Install

npm i @korzhyk/react-svg-loader --save-dev

or

yarn add @korzhyk/react-svg-loader --dev

Usage

// without webpack loader config
import Image1 from '@korzhyk/react-svg-loader!./image1.svg';

// or if you're passing all .svg files via @korzhyk/react-svg-loader,
import Image2 from './image1.svg';

// and use it like any other React Component
<Image1 width={50} height={50}/>
<Image2 width={50} height={50}/>

Loader output

By default the loader outputs ES2015 code (with JSX compiled to JavaScript using babel-preset-react). You can combine it with babel-loader + babel-preset-env to compile it down to your target.

// In your webpack config
{
  test: /\.svg$/,
  use: [
    {
      loader: "babel-loader"
    },
    {
      loader: "@korzhyk/react-svg-loader",
      options: {
        jsx: true, // true outputs JSX tags
        preact: true // use preact definition to import
        // pragma: "preact.h" // you can define your pragma option to @babel/plugin-transform-react-jsx
      }
    }
  ]
}

SVGO options

{
  test: /\.svg$/,
  use: [
    "babel-loader",
    {
      loader: "@korzhyk/react-svg-loader",
      options: {
        svgo: {
          plugins: [
            { removeTitle: false }
          ],
          floatPrecision: 2
        }
      }
    }
  ]
}

Internals

Assumptions and Other gotchas

  • Root element is always <svg>
  • SVG is optimized using SVGO

LICENSE

MIT