gulp some tips

本文介绍如何在gulp中处理错误,包括使用自定义错误处理函数、监视文件更改并重新编译,以及确保即使文件不存在也能捕获错误。文章还提供了一个改进的gulp.src方法,它内置了错误处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  gulp作为替代grunt的task runner后起之秀,基于nodejs的stream操作模型,大大减少了对磁盘的操作因此大大提高了性能。

gulp error handling

var gulp = require('gulp');
var coffee = require('gulp-coffee');
var concat = require('gulp-concat');
function handleError(error){
  console.log(error);
  this.emit('end');    
}
gulp.task('coffee',function(){
    return gulp.src('src/*.coffee')
                     .pipe(coffee())
                     .on('error',handleError)
                     .pipe(concat('all.js').pipe(gulp.dest('dist/'));
});                           
gulp.task('watch', ['coffee'], function(){
           gulp.watch('src/*.coffee',['coffee']);
});

 对于gulp.src这类的对glob文件系统的操作,如果文件或者文件夹不存在,后续的gulp stream操作默认也不会有任何错误抛出,有时很让人困惑。

其中的解决方案就是使用gulp-expect-file

var coffee = require('gulp-coffee');
var expect = require('gulp-expect-file');

gulp.task('mytask', function() {
  var files = ['idontexist.html'];

  return gulp.src(files)
    .pipe(expect(files))
    .pipe(coffee());
});

http://stackoverflow.com/questions/22343591/gulp-silently-failing-no-errors-printed-to-console

 

下面通过重载gulp.src的方法实现默认将plumber放到gulp stream errorhandlering中

var gulp = require('gulp');
var plumber = require('gulp-plumber');
var gutil = require('gulp-util');
 
var gulp_src = gulp.src;
gulp.src = function() {
  return gulp_src.apply(gulp, arguments)
    .pipe(plumber(function(error) {
      // Output an error message
      gutil.log(gutil.colors.red('Error (' + error.plugin + '): ' + error.message));
      // emit the end event, to properly end the task
      this.emit('end');
    })
  );
};

https://www.timroes.de/2015/01/06/proper-error-handling-in-gulp-js/

转载于:https://www.cnblogs.com/kidsitcn/p/4623973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值