SVG Kompressions-Problem mit gulp-svgmin und Sketch

Bei der Kompression diverser SVG-Dateien, mit Hilfe von gulp-svgmin bzw. svgo, bin ich etwas ins stolpern geraten. Das Problem waren dabei die direkt aus Sketch exportierten Dateien. Die Lösung war letztlich nur eine Sache der Konfiguration.

Im hellsten Moment bekam ich die Fehlermeldung „Error in parsing: Unbound namespace prefix: „sketch“„. Meistens bekam ich aber einfach keine SVGs ausgegeben. Mit der Fehlermeldung waren dann aber schnell Lösungen von Leidensgenossen gefunden.

Die Lösung liegt darin, einige Plugins von svgo zu aktivieren, so dass die ganzen Sketch spezifischen und nicht benötigten Infos entfernt werden. Darauf gekommen bin ich durch dieses svgo-Script. Die Liste der verfügbaren Plugins stehen in der Doku auf github.

Ein einfaches Gulp-Script, ohne Probleme mit Sketch, sieht dann so aus:

var gulp = require('gulp');
var svgmin = require('gulp-svgmin');
 
gulp.task('svgmin', function () {
  return gulp.src('images/svg/**/*.svg')
    .pipe(svgmin({
        plugins: [
            {removeDesc: true},
            {removeDoctype: true},
            {removeEmptyAttrs: true},
            {removeUnknownsAndDefaults: true}, 
            {removeUnusedNS: true},
            {removeEditorsNSData: true},
        ]
    }))
    .pipe(gulp.dest('build/images/svg/'));
});