2017-02-16 4 views
1

Я создал простую задачу Gulp для проверки изменений в моих ES6-файлах. Я хотел бы перекрыть их и показать сообщение об ошибке, когда что-то пошло не так.Показать сообщение об успешном завершении выполнения задачи gulp

Отображается экран ошибки. Однако, Я хотел бы показать другое сообщение, когда все будет успешным. Я пробовал метод .on('end'), но этот метод также будет вызываться при возникновении некоторых ошибок.

Мой текущий Gulpfile выглядит следующим образом:

const gulp = require('gulp'); 
const babel = require('gulp-babel'); 
const uglify = require('gulp-uglify'); 
const pump = require('pump'); 
const imagemin = require('gulp-imagemin'); 
const sass = require('gulp-sass'); 
const DISTRIBUTION_PATH = 'public/theme/js/app'; 
const plumber = require('gulp-plumber'); 
const gutil = require('gulp-util'); 
const clear = require('clear'); 

gulp.task('transpile',() => 
    gulp.watch('theme/js/**/*.js',() => { 
     return gulp.src('theme/js/**/*.js') 
      .pipe(plumber()) 
      .pipe(babel({ 
       presets: ['es2015'], 
       plugins: [ 
        'transform-object-rest-spread' 
       ] 
      })) 
      .on('error', err => { 
       clear(); 
       gutil.log(gutil.colors.red('[Compilation Error]')); 
       gutil.log(err.fileName + (err.loc ? `(${err.loc.line}, ${err.loc.column}): ` : ': ')); 
       gutil.log(gutil.colors.red('error Babel: ' + err.message + '\n')); 
       gutil.log(err.codeFrame); 
      }) 
      .pipe(gulp.dest(DISTRIBUTION_PATH)); 
    }) 
); 

Любые идеи, как этого добиться?

+1

Проверьте это https://www.npmjs.com/package/gulp-msg – Weedoze

+0

Спасибо за наш быстрый ответ! Я знаю этот плагин, но он сам заботится о сообщении. Я действительно ищу 'on ('success',() => console.log ('Yay success!'))' Callback. – Vernon

ответ

2

Ответ может быть немного запоздалым, но для Googler, как я, я создал решение. Я добавил логический isSuccess, чтобы определить, была ли транспиляция успешной. Если есть ошибка isSuccess становится ложной, и сообщение не отображается «в конец».

const gulp = require('gulp'); 
const babel = require('gulp-babel'); 
const uglify = require('gulp-uglify'); 
const pump = require('pump'); 
const imagemin = require('gulp-imagemin'); 
const sass = require('gulp-sass'); 
const DISTRIBUTION_PATH = 'public/theme/js/app'; 
const plumber = require('gulp-plumber'); 
const gutil = require('gulp-util'); 
const clear = require('clear'); 

gulp.task('transpile',() => 
    gulp.watch('theme/js/**/*.js',() => { 
     let isSuccess = true; 
     return gulp.src('theme/js/**/*.js') 
      .pipe(plumber()) 
      .pipe(babel({ 
       presets: ['es2015'], 
       plugins: [ 
        'transform-object-rest-spread' 
       ] 
      })) 
      .on('error', err => { 
       isSuccess = false; 
       clear(); 
       gutil.log(gutil.colors.red('[Compilation Error]')); 
       gutil.log(err.fileName + (err.loc ? `(${err.loc.line}, ${err.loc.column}): ` : ': ')); 
       gutil.log(gutil.colors.red('error Babel: ' + err.message + '\n')); 
       gutil.log(err.codeFrame); 
      }) 
      .pipe(gulp.dest(DISTRIBUTION_PATH)) 
      .on('end',()=> { 
       if(isSuccess) 
        console.log('Yay success!'); 
      }); 
    }) 
); 
Смежные вопросы