使用水管工和工具来处理gulp中的错误

时间:2016-07-21 09:57:46

标签: gulp-uglify

使用gulp与管道工模块,但坚持问题;下面是我的主要gulpfile.js

var gulp = require('gulp');
var $ = require("gulp-load-plugins")({
  pattern: ['gulp-*', 'gulp.*', 'browserify**'],
  replaceString: /\bgulp[\-.]/
});

var src = './app/';
var dest = './env/';

gulp.task('scripts', function(){
    return gulp.src([src + '**/*.js'])
            .pipe($.plumber(function(error) {
                  // Output an error message
                  $.util.log($.util.colors.red('Error (' + error.plugin + '): ' + error.message));
                  // emit the end event, to properly end the task
                  this.emit('end');
             }))
            .pipe($.uglify().on('error', $.util.log))
            .pipe($.concat('vendor.min.js'))
            .pipe(gulp.dest(dest));
});

正在运行gulp scripts错误两次see,因为有$.plumber()$.uglify().on方法;我想展示一个,所以错误在控制台中以红色方便派。如果我发出.on('error', $.util.log)而不是执行停止并使应用程序崩溃。

1 个答案:

答案 0 :(得分:0)

就像魔术一样;大多数时候,每当我在SO上提问时,我都会在几次试验中找到解决方案。

尝试了这个并成功

var onError = function (err) {
    $.util.log($.util.colors.red('Error (' + err.plugin + '): ' + err.message));
};

以后

gulp.task('scripts', function(){
        return gulp.src([src + '**/*.js'])
                .pipe($.plumber())
                .pipe($.uglify().on('error', onError))
                .pipe($.plumber.stop())
                .pipe($.concat('vendor.min.js'))
                .pipe(gulp.dest(dest));
});

希望它可以帮助某人