關於gulp任務報錯處理


一、關於報錯情景

  gulp進入到任務流的時候如果出現錯誤的話,一般來說進程會自動掛掉,要重新啟動任務才能繼續。由此,導致如果任務出錯的話就很麻煩。所以gulp提供了監聽error進行錯誤處理的函數。

二、關於錯誤處理,直接上代碼

//壓縮html等操作但我這里因為是測試,所以只是簡單的復制沒有做處理
gulp.task("html",function(){
    return gulp.src("app/**/*.html")
    .pipe(gulp.dest("app"))
    .on("error",function(err){
        console.log('Less Error!', err.message);
        this.emit('end');
    })
    .pipe(webServer.reload())
})

三、重點

  如上所示:gulp提供一個on("error",callback)抓取任務報錯,並且。通過回調可打印出error對象。

  這里有個非常重要的坑:this.emit(‘end’),之前看了很多博文里都沒有這一步的處理,但是我沒有這一步處理的時候雖然watch進程不會掛了,但是html文件發 生變化時卻不會自動編譯了。所以要加上這個。有很多博文寫了this.end();但至少我試了是沒什么用的;

四、錯誤處理插件

  1、gulp錯誤處理插件還是比較多的,最常用的就是gulp-plumber;參考:https://www.cnblogs.com/liangcheng11/p/6894943.html

    2、但是個人覺得還不如自定義一個errorhandler函數。如下:

 

function handler (err){
    console.log('Less Error!', err.message);
    this.emit('end');
}
//壓縮html等操作但我這里因為是測試,所以只是簡單的復制沒有做處理
gulp.task("html",function(){
    return gulp.src("app/**/*.html")
    .pipe(gulp.dest("app"))
    .on("error",handler)
    .pipe(webServer.reload())
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM