美文网首页
gulp.watch的两种使用方法

gulp.watch的两种使用方法

作者: microkof | 来源:发表于2016-10-25 15:58 被阅读3107次

gulp.watch用于监听文件变化,以触发任务。通常把gulp.watch自身也写成一个任务。

常规任务列表式写法

常规写法类似于gulp.watch('*.scss', ['task-sass']);,也就是任务列表的写法。

var gulp = require('gulp'),
    sass = require('gulp-sass');

gulp.task('task-sass', function () {
    gulp.src(['testscss1.scss', 'testscss2.scss']) // 引入两个资源文件
        .pipe(sass()) // 执行编译
        .pipe(gulp.dest('testcss')); // 输出到testcss文件夹,如果没有就自动创建
});

gulp.task('watch-scss', function () {
    gulp.watch('*.scss', ['task-sass']); // 注意,任务列表是个数组,即使只有一个元素。
});

命令行输入gulp watch-scss即可。

如果想写回调,需要另行写回调函数watcher.on('change', function(event) {})

回调函数会被传入一个名为 event 的对象,这个对象描述了所监控到的变动:

event.type
类型: String

发生的变动的类型:added, changed 或者 deleted。

event.path
类型: String

触发了该事件的文件的路径。

var gulp = require('gulp'),
    sass = require('gulp-sass');

gulp.task('task_sass', function () {
    gulp.src(['*.scss'])
        .pipe(sass())
        .pipe(gulp.dest('testcss'));
});

gulp.task('watch_scss', function () {
    var watcher = gulp.watch('*.scss', ['task_sass']);
    watcher.on('change', function(event) {
        console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
        if (event.type === 'added') {
            // ...
        } else if (event.type === 'deleted') {
            // ...
        }
    });
});

watch()回调函数式写法

回调函数式写法如下,也就是放弃任务列表,直接写回调函数:

var gulp = require('gulp'),
    sass = require('gulp-sass');

gulp.task('watch-scss', function () {
    gulp.watch('*.scss', function(event) {
        if (event.type === 'added') {
            // ...
        } else if (event.type === 'deleted') {
            // ...
        }
        gulp.src(['testscss1.scss', 'testscss2.scss']) // 引入两个资源文件
            .pipe(sass()) // 执行编译
            .pipe(gulp.dest('testcss')); // 输出到testcss文件夹,如果没有就自动创建
    });
});

总结:

不需要执行任务列表,只想写一个回调的,就用watch()回调函数式写法,想执行任务列表,就用任务列表式写法。

相关文章

  • gulp.watch的两种使用方法

    gulp.watch用于监听文件变化,以触发任务。通常把gulp.watch自身也写成一个任务。 常规任务列表式写...

  • gulp

    gulp gulp.src gulp.dest gulp.task gulp.watch gulp.pipe() ...

  • gulp讲解

    一、gulp的四个主要的API gulp.src、gulp.pipe、gulp.dest、gulp.watch 二...

  • RxLifecycle原理分析

    RxLifecycle源码地址 RxLifecycle有两种使用方法:1、bindToLifecycle直接绑定生...

  • Die Nikotin-Lutschtabletten

    使用方法: 两种使用方法: 第一种使用方法 前6周每天最多使用8-12片 6周后直接停止使用该药 第二种治疗方法 ...

  • xgboost以及lightgbm的实现

    1.导入机器学习常用的包 对数据进行类型转换以及切分 2.xgboost 的两种形式的使用方法 原生态的使用方法 ...

  • 快速上手UIView动画

    UIView动画有两种使用方法 UIView [begin commit]模式 UIView Block调用先举个...

  • mybatis基础使用(手写sql)

    IDEA的Maven使用Mybatis mybatis的两种使用方法(注解版、xml配置版) 文档: https:...

  • greeDAO的两种使用方法

    初始化、调用greedao等等信息,比较全的内容https://www.cnblogs.com/renhui/p/...

  • Java中的synchronized使用

    synchronized的两种使用方法: 1)同步对象synchronized(对象名){临界区} 2)同步方法p...

网友评论

      本文标题:gulp.watch的两种使用方法

      本文链接:https://www.haomeiwen.com/subject/svbruttx.html