███████╗██╗ ██╗ ██████╗ ███████╗████████╗ ██████╗ ██████╗ ███████╗
██╔════╝██║ ██║██╔════╝ ██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝
███████╗██║ ██║██║ ███╗ ███████╗ ██║ ██║ ██║██████╔╝█████╗
╚════██║╚██╗ ██╔╝██║ ██║ ╚════██║ ██║ ██║ ██║██╔══██╗██╔══╝
███████║ ╚████╔╝ ╚██████╔╝ ███████║ ██║ ╚██████╔╝██║ ██║███████╗
╚══════╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
FORK FROM Algotec/webpack-svgstore-plugin
npm i webpack-svgstore-plugin --save-dev
Use [email protected] for Webpack 1.x.x
Use [email protected] for Webpack 2.x.x,3.x.x,4.x.x.
Use [email protected] for Webpack 2.x.x,3.x.x,4.x.x, node must be =>7.6
Use [email protected] for Webpack 5.x.x, node must be => 10.12
//webpack.config.js
var SvgStore = require("webpack-svgstore-plugin");
module.exports = {
plugins: [
// create svgStore instance object
new SvgStore({
// svgo options
svgoOptions: {
plugins: [{ removeTitle: true }],
},
prefix: "icon",
}),
],
};
// plugin will find marks and build sprite
var __svg__ = {
path: "./assets/svg/**/*.svg",
name: "assets/svg/[hash].logos.svg",
};
// will overwrite to var __svg__ = { filename: "assets/svg/1466687804854.logos.svg" };
// also you can use next variables for sprite compile
// var __sprite__ = { path: './assets/svg/minify/*.svg', name: 'assets/svg/[hash].icons.svg' };
// var __svgstore__ = { path: './assets/svg/minify/*.svg', name: 'assets/svg/[hash].stuff.svg' };
// var __svgsprite__ = { path: './assets/svg/minify/*.svg', name: 'assets/svg/[hash].1logos.svg' };
// require basic or custom sprite loader
require("webpack-svgstore-plugin/src/helpers/svgxhr")(__svg__);
As you know, last version has integrated ajax sprite loader. Right now, you can override that. Or create your own sprite ajax loader function.
HTML:
<svg class="svg-icon">
<use xlink:href="#icon-name"></use>
</svg>
React JSX:
<svg className="svg-icon">
<use xlinkHref="#icon-name" />
</svg>
template
- add custom jade template layout (optional)svgoOptions
- options for svgo (optional, default:{}
)
NPM package available here: webpack-svgstore-plugin
MIT © Chernobrov Mike, Gordey Levchenko , Nadav Sinai