gulp.watch的兩種使用方法

gulp.watch用于監(jiān)聽文件變化,以觸發(fā)任務蝴罪。通常把gulp.watch自身也寫成一個任務。

常規(guī)任務列表式寫法

常規(guī)寫法類似于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()) // 執(zhí)行編譯
        .pipe(gulp.dest('testcss')); // 輸出到testcss文件夾侄刽,如果沒有就自動創(chuàng)建
});

gulp.task('watch-scss', function () {
    gulp.watch('*.scss', ['task-sass']); // 注意,任務列表是個數(shù)組朋凉,即使只有一個元素州丹。
});

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

如果想寫回調(diào)杂彭,需要另行寫回調(diào)函數(shù)watcher.on('change', function(event) {})墓毒。

回調(diào)函數(shù)會被傳入一個名為 event 的對象,這個對象描述了所監(jiān)控到的變動:

event.type
類型: String

發(fā)生的變動的類型:added, changed 或者 deleted亲怠。

event.path
類型: String

觸發(fā)了該事件的文件的路徑所计。

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()回調(diào)函數(shù)式寫法

回調(diào)函數(shù)式寫法如下,也就是放棄任務列表团秽,直接寫回調(diào)函數(shù):

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()) // 執(zhí)行編譯
            .pipe(gulp.dest('testcss')); // 輸出到testcss文件夾醉箕,如果沒有就自動創(chuàng)建
    });
});

總結:

不需要執(zhí)行任務列表,只想寫一個回調(diào)的徙垫,就用watch()回調(diào)函數(shù)式寫法,想執(zhí)行任務列表放棒,就用任務列表式寫法姻报。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市间螟,隨后出現(xiàn)的幾起案子吴旋,更是在濱河造成了極大的恐慌损肛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣瑟,死亡現(xiàn)場離奇詭異治拿,居然都是意外死亡,警方通過查閱死者的電腦和手機笆焰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門劫谅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚷掠,你說我怎么就攤上這事捏检。” “怎么了不皆?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵贯城,是天一觀的道長。 經(jīng)常有香客問我霹娄,道長能犯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任犬耻,我火速辦了婚禮踩晶,結果婚禮上,老公的妹妹穿的比我還像新娘香追。我一直安慰自己合瓢,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布透典。 她就那樣靜靜地躺著晴楔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪峭咒。 梳的紋絲不亂的頭發(fā)上税弃,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音凑队,去河邊找鬼则果。 笑死,一個胖子當著我的面吹牛漩氨,可吹牛的內(nèi)容都是我干的西壮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叫惊,長吁一口氣:“原來是場噩夢啊……” “哼款青!你這毒婦竟也來了?” 一聲冷哼從身側響起霍狰,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抡草,失蹤者是張志新(化名)和其女友劉穎饰及,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體康震,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡燎含,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腿短。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屏箍。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖答姥,靈堂內(nèi)的尸體忽然破棺而出铣除,到底是詐尸還是另有隱情,我是刑警寧澤鹦付,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布尚粘,位于F島的核電站,受9級特大地震影響敲长,放射性物質(zhì)發(fā)生泄漏郎嫁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一祈噪、第九天 我趴在偏房一處隱蔽的房頂上張望泽铛。 院中可真熱鬧,春花似錦辑鲤、人聲如沸盔腔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弛随。三九已至,卻和暖如春宁赤,著一層夾襖步出監(jiān)牢的瞬間舀透,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工决左, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留愕够,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓佛猛,卻偏偏與公主長得像惑芭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子继找,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 本文默認你已經(jīng)安裝好node環(huán)境强衡,并且熟悉node命令,和window cd命令。 gulp簡介 基于nod...
    9I閱讀 1,984評論 4 50
  • 對網(wǎng)站資源進行優(yōu)化漩勤,并使用不同瀏覽器測試并不是網(wǎng)站設計過程中最有意思的部分,但是這個過程中的很多重復的任務能夠使用...
    懵逼js閱讀 1,069評論 0 8
  • gulpjs是一個前端構建工具碉纺,與gruntjs相比鬼譬,gulpjs無需寫一大堆繁雜的配置參數(shù)馋评,API也非常簡單,學...
    井皮皮閱讀 1,296評論 0 10
  • 1究飞、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,378評論 1 11
  • gulpjs是一個前端構建工具堂鲤,與gruntjs相比亿傅,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡單瘟栖,學...
    小裁縫sun閱讀 928評論 0 3