【问题标题】:How can I make a directory always listening?我怎样才能让一个目录一直在听?
【发布时间】:2018-01-24 16:03:46
【问题描述】:

我使用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

【问题讨论】:

    标签: javascript image optimization gulp ecmascript-5


    【解决方案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 信号)之前,这个任务不会停止,但是如果你关闭终端,你就会关闭任务!

    【讨论】:

    • 谢谢,点赞。 “你必须小心”到底是什么意思?我应该做任何具体的事情吗?它还会填满内存吗?使用.watch 是不是很糟糕?
    • 不,这个“你必须小心”它与“不要杀死工作”“不要关闭控制台”。这是一个小任务,你应该在后台运行这个任务,让它完成所有的工作。抱歉这个警告哈哈。
    猜你喜欢
    • 2015-02-23
    • 1970-01-01
    • 2016-07-10
    • 2011-08-09
    • 2016-04-22
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多