2016-08-04 3 views
1

У меня есть глоток создание задачи .png для .svg резервных объявлений файлов в папке Src:Глоток: удалить генерироваться .png из Dest, когда .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 
    })); 
}); 

(svg задача является svgmin)

Я хотел прибраться за собой, удалив сгенерированные файлы (в папке Dest) и думал расширить задачу часов, как показано ниже:

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); 
    } 
    }); 
}); 

Это работает в удалении .svg, но то, что я бы ALS o нравится делать удаление файла .png, чтобы не было сирот. Я слепо доверяю Handling the Delete Event on Watch recipe, поэтому я уже за пределами своего уровня знаний Gulp/JS экспериментирую с этой модификацией.

Заранее спасибо.

ответ

0

Предполагая, что файл .png генерируется в ту же папку, что и уменьшенной .svg файла, следующие должны работать:

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); 
    } 
}); 
Смежные вопросы