2017-02-16 12 views
1

私はES6ファイルの変更をチェックするための単純なGulpタスクを作成しました。私はそれらを切り抜き、何かが間違ったときにエラーメッセージを表示したいと思います。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! '))'コールバックを探しています。 – Vernon

答えて

2

回答は少し遅れているかもしれませんが、私のようなGoogle社員にとっては解決策を作成しました。 boolean isSuccessを追加して、蒸散が成功したかどうかを判断しました。エラーがある場合、isSuccessはfalseになり、メッセージは "on end"に表示されません。

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!'); 
      }); 
    }) 
); 
関連する問題