2.1.1 • Published 7 years ago
svgr-loader v2.1.1
svgr-loader
Webpack loader for SVGR.
This is published fork with pull request #139
npm install svgr-loaderUsage
In your webpack.config.js:
{
test: /\.svg$/,
use: ['svgr-loader'],
}In your code:
import Star from './star.svg'
const App = () => (
<div>
<Star />
</div>
)Passing options
{
test: /\.svg$/,
use: [
{
loader: 'svgr-loader',
options: {
native: true,
},
},
],
}Using with url-loader or file-loader
It is possible to use it with url-loader or file-loader.
In your webpack.config.js:
{
test: /\.svg$/,
use: ['svgr-loader', 'url-loader'],
}In your code:
import starUrl, { ReactComponent as Star } from './star.svg'
const App = () => (
<div>
<img src={starUrl} alt="star" />
<Star />
</div>
)Use your own Babel configuration
By default, svgr-loader includes a babel-loader with optimized configuration. In some case you may want to apply a custom one (if you are using Preact for an example). You can turn off Babel transformation by specifying babel: false in options.
// Example using preact
{
test: /\.svg$/,
use: [
{
loader: 'babel-loader',
options: {
presets: ['preact', 'env'],
},
},
{
loader: 'svgr-loader',
options: { babel: false },
}
],
}Handle SVG in CSS, Sass or Less
It is possible to detect the module that requires your SVG using Rule.issuer in Webpack. Using it you can specify two different configurations for JavaScript and the rest of your files.
{
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
issuer: {
test: /\.jsx?$/
},
use: ['babel-loader', 'svgr-loader', 'url-loader']
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url-loader'
},
}License
MIT
2.1.1
7 years ago