Пытаюсь собрать svg спрайт из нескольких svg файлов.
Если ввести в терминале gulp svgSpriteBuild, то таск создает пустой файл symbol_sprite.html, не добавляя туда иконки, а должно их туда добавлять, оборачивать тегами symbol и убирать fill. Буду признателен, если подскажете, что я делаю не так?
Код:
gulp.task('svgSpriteBuild', function () {
return gulp.src('#src/img/iconsprite/*.svg')
// minify svg
.pipe(svgmin({
js2svg: {
pretty: true
}
}))
// remove all fill and style declarations in out shapes
.pipe(cheerio({
run: function ($) {
$('[fill]').removeAttr('fill');
$('[style]').removeAttr('style');
},
parserOptions: { xmlMode: true }
}))
// cheerio plugin create unnecessary string '>', so replace it.
.pipe(replace('>', '>'))
// build svg sprite
.pipe(svgSprite({
mode: "symbols",
preview: false,
selector: "icon-%f",
svg: {
symbols: 'symbol_sprite.html'
}
}
))
.pipe(gulp.dest('#src/'));
});
Структура папок:
#src/
____img/
_______iconsprite/ (там все svg иконки)
____scss/
index.html
symbol_sprite.html
dist/