2016-08-04 2 views
1

Ich habe eine Gulp Aufgabe .png Fallbacks für .svg-Dateien in einem Ordner src erstellen:Gulp: löschen erzeugt aus dest .png, wenn sie von src entfernt .SVG

gulp.task('svg2png', ['svg'], function() { 
    return gulp.src(src + '/svg/**/*.svg') 
    .pipe(plugins.newer(dest + '/svg')) 
    .pipe(plugins.svg2png()) 
    .pipe(gulp.dest(dest + '/svg')) 
    .pipe(plugins.notify({ 
    message: 'svg2png task complete', onLast: true 
    })); 
}); 

(Die svg Aufgabe svgmin ist)

ich wollte hinter mir aufzuräumen von generierten Dateien zu löschen (im Ordner dest) und dachte, wie unten die Uhr Aufgabe zu verlängern:

gulp.task('watch', function() { 
    var watchSvg = gulp.watch('src/svg/**/*.svg', ['svg2png']); 

    watchSvg.on('change', function(event) { 
    if (event.type === 'deleted') { 
     var filePathFromSrc = path.relative(path.resolve('src'), event.path); 
     var destFilePath = path.resolve('dist', filePathFromSrc); 
     del.sync(destFilePath); 
    } 
    }); 
}); 

Dies funktioniert in der .svg zu löschen, aber was ich würde als o Löschen Sie die entsprechende .png-Datei, so dass keine Waisen vorhanden sind. Ich vertraue blindlings dem , also bin ich bereits außerhalb meines Niveaus von Gulp/JS-Wissen, um mit dieser Änderung zu experimentieren.

Vielen Dank im Voraus.

Antwort

0

die .png Datei Unter der Annahme, erzeugt in den gleichen Ordner wie die minimierte .svg Datei sollte die folgende Arbeiten:

watchSvg.on('change', function(event) { 
    if (event.type === 'deleted') { 
    var filePathFromSrc = path.relative(path.resolve('src'), event.path); 
    var destFilePath = path.resolve('dist', filePathFromSrc); 
    del.sync(destFilePath); 
    var pngDestFilePath = destFilePath.replace(/.svg$/, '.png'); 
    del.sync(pngDestFilePath); 
    } 
});