如何让目录始终在监听?

时间:2018-01-23 14:17:08

标签: javascript image optimization gulp ecmascript-5

我使用gulp.js来缩小,压缩,优化我的静态文件。现在我有一个目录包含所有用户'化身。当用户注册时,我的PHP代码将为他生成一个头像并将其复制/粘贴到该目录中。

化身的大小几乎是20kb。我可以每次在该目录上手动调用此任务以减少图像(头像)大小:

const gulp = require('gulp');
const imagemin = require('gulp-imagemin');

gulp.task('compress_avatars', () =>
    gulp.src('pure/img/avatars/*')
        .pipe(imagemin())
        .pipe(gulp.dest('product/img/avatars'))
);

它也可以,并使图像的大小接近3kb。一切都很好。现在我想知道,我怎样才能自动(实时收听)?我的意思是,当一个图像添加到这个目录时,我需要自动减小它的大小(每次都不用手执行gulp compress_avatars

1 个答案:

答案 0 :(得分:1)

您可以使用gulp.watch代替gulp.src检查此目录中的任何更改并压缩您的头像文件。

const gulp = require('gulp');
const imagemin = require('gulp-imagemin');

gulp.task('compress_avatars', () =>
  gulp.watch('pure/img/avatars/*', {ignoreInitial: false})
    .pipe(imagemin())
    .pipe(gulp.dest('product/img/avatars'))
);

在发送Ctrl-c(SIGINT信号)之前,您必须知道此任务不会停止,但如果您关闭终端,则会关闭任务!