首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp:如果源已被删除,如何使gulp自动删除输出文件?

Gulp:如果源已被删除,如何使gulp自动删除输出文件?
EN

Stack Overflow用户
提问于 2015-07-02 21:47:08
回答 1查看 1.8K关注 0票数 2

我将gulpgulp-imagemin一起用于一些图像优化工作。我设置了gulp watch来监视更改,一旦我:

  1. 将新图像添加到图像源文件夹
  2. 删除图像源文件夹中的图像

到目前为止,第一个很好的工作,当一个新的图像被添加时,gulp运行任务并压缩新的图像;然而,当我删除一个图像时,gulp似乎什么也不做。我是不是漏掉了一个插件或一些设置?

请参阅下面的gulpfile

代码语言:javascript
复制
// gulpfile.js
var gulp = require('gulp');
var newer = require('gulp-newer');
var imagemin = require('gulp-imagemin');


var imgSrc = 'src/images/**';
var imgDest = 'images';

gulp.task('images', function() {
  return gulp.src(imgSrc)
  .pipe(newer(imgDest))
  .pipe(imagemin({
      optimizationLevel: 5,
      progressive: true,
      interlaced: true
    }))
  .pipe(gulp.dest(imgDest));
});

gulp.task('watch', function() {
  gulp.watch(imgSrc, ['images']);
});

gulp.task('default', ['images', 'watch']);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-08 11:11:11

试试这个:

代码语言:javascript
复制
var gulp  = require('gulp');
var del = require('del');
var imagemin = require('gulp-imagemin');

var imgSrc = 'src/images/**';
var imgDest = 'dist/images';

gulp.task('images', function() {
  return gulp.src(imgSrc)
  .pipe(imagemin({
      optimizationLevel: 5,
      progressive: true,
      interlaced: true
    }))
  .pipe(gulp.dest(imgDest));
});

gulp.task('clean-img', function (cb) {
 return del(imgDest,cb);
 });
gulp.task('watch', function() {
  gulp.watch(imgSrc, ['clean-img','images']);
});

gulp.task('default', ['clean-img','images', 'watch']);  

这将清除dist文件夹,并从src文件夹中添加图像。不幸的是,这种方法不适用于gulp-newer,每次发生更改时都会处理所有的图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31195194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档