我怎样才能让一个目录一直在监听?

How can I make a directory always listening?

我使用 gulp.js 来缩小、压缩、优化我的静态文件。现在我有一个包含所有用户头像的目录。当用户注册时,我的 PHP 代码会为他生成一个头像,然后 copy/paste 将其放入该目录。

一个头像的大小将近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 ?

您可以使用 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信号),但是如果你关闭终端你就会关闭任务!