@SilencerWeb

Почему ломается SVG при сборке спрайта при помощи svg-store?

Всем привет.

Использую gulp-svgstore для сборки свг-спрайта. До сегодняшнего момента было все хорошо, не было никаких проблем со спрайтами, может быть это из-за того, что не было сложных иконок, а были лишь маленькие простенькие иконки. Ладно, к делу.

Вот одна из иконок, которая еще не находится в спрайте:
aa92f77291854192808855656437d58e.PNG

Вот эта же иконка, только подключенная уже из спрайта:
b36b5db463c44836bab1413084ee9e4f.PNG

Отрывок из gulpfile.js:
gulp.task("icons", function () {
  return gulp.src("./src/icons/*.svg")
    .pipe(svgo())
    .pipe(cheerio({
      run: function ($) {
        $("[fill]").removeAttr("fill");
        $("[stroke]").removeAttr("stroke");
        $("[style]").removeAttr("style");
        $("[class]").removeAttr("class");
      },
      parserOptions: {xmlMode: true}
    }))
    .pipe(replace(">", ">"))
    .pipe(svgstore({
      inlineSvg: true
    }))
    .pipe(cheerio({
      run: function ($) {
        $("svg").attr("style", "display:none");
      },
      parserOptions: {xmlMode: true}
    }))
    .pipe(gulp.dest("build/img"));
});


Уже тестил, никакой плагин не портит свг, кроме как gulp-svgstore.

Очень надеюсь, что кто-нибудь поможет. Заранее благодарю!
Пишите, если нужна какая-либо дополнительная информация.
  • Вопрос задан
  • 1203 просмотра
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
run: function ($) {
        $("[fill]").removeAttr("fill");
        $("[stroke]").removeAttr("stroke");
        $("[style]").removeAttr("style");
        $("[class]").removeAttr("class");
}


Уверены, что эта функция не удаляет что-нибудь нужное? Хотите минимизировать svg — перегоняйте через svgo.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы