react-svg-loader
Install
npm i react-svg-loader --save-dev
or
yarn add react-svg-loader --dev
Usage
import Image1 from 'react-svg-loader!./image1.svg';
import Image2 from './image1.svg';
<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.
{
test: /\.svg$/,
use: [
{
loader: "babel-loader"
},
{
loader: "react-svg-loader",
options: {
jsx: true
}
}
]
}
SVGO options
{
test: /\.svg$/,
use: [
"babel-loader",
{
loader: "react-svg-loader",
options: {
svgo: {
plugins: [
{ removeTitle: false }
],
floatPrecision: 2
}
}
}
]
}
Internals
Input SVG
↓
SVG Optimize using SVGO
↓
Babel Transform with preset=react
and plugin=svgToComponent
Assumptions and Other gotchas
- Root element is always
<svg>
- SVG is optimized using SVGO
LICENSE
MIT