Gulp: 当 .svg 从 src 中删除时,从 dest 中删除生成的 .png
Gulp: delete generated .png from dest when .svg removed from src
我有一个 Gulp 任务为 src 文件夹中的 .svg 文件创建 .png 回退:
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 文件夹中)来整理自己,并想按如下方式扩展 watch 任务:
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,但我还想删除匹配的 .png 文件,这样就没有孤儿了。我盲目地相信 Handling the Delete Event on Watch recipe 所以我已经超出了我的 Gulp / JS 知识水平来试验这个修改。
提前致谢。
假设 .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);
}
});
我有一个 Gulp 任务为 src 文件夹中的 .svg 文件创建 .png 回退:
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 文件夹中)来整理自己,并想按如下方式扩展 watch 任务:
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,但我还想删除匹配的 .png 文件,这样就没有孤儿了。我盲目地相信 Handling the Delete Event on Watch recipe 所以我已经超出了我的 Gulp / JS 知识水平来试验这个修改。
提前致谢。
假设 .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);
}
});