2015-12-09 9 views
7

標準エラーログ

gulp.task("es6", function() { 
     return browserify({entries: 'src/main/es6/main.js', extensions: ['.js'], debug: true}) 
     .transform(babelify) 
     .bundle() 
     .pipe(source('superpos.js')) 
     .pipe(streamify(uglify())) 
     .pipe(gulp.dest('src/main/webapp')); 
}); 

私は、エラーログのこの種類を取得:

enter image description here

それは私がそれを好む、はっきりときれいです。

しかし、私の時計の稼働を維持するために、私は、代わりにそれを通過させるのエラーを処理するためにどのように私はここに同じエラーログを再現することができます

... 
    .transform(babelify) 
    .bundle() 
    .on('error', function(error){ 
     // pretty error print 
     this.emit('end'); 
    }) 
    ... 

ようなものが必要?

私は、チョーク、gutilとerrorringファイルを組み合わせて、何とか同じ機能を使用することで、痛みを伴って再現することを避けることを好むでしょう。

+0

をのGulpウォッチャーの十分なはずです。あなたも同じエラーが発生しますが、プロセスを征服することを監視します – ddprrt

+0

@ddprrt私はwatchifyで試してみましたが、時計は動いていますがログはありません。私は何かを見逃している可能性があります、あなたはロギングの例で答えることができますか? –

答えて

2

browserifyはsyntax-error moduleを使用しているため、コンソール対応のcodeFrameプロパティを含むリッチエラーオブジェクトがスローされます。

私はこのようなエラーを傍受することができます

gutilは、この結果を gulp-util

ある

gulp.task("es6", function() { 
     return browserify({entries: 'src/main/es6/main.js', extensions: ['.js'], debug: true}) 
     .transform(babelify) 
     .bundle() 
     .on('error', function(err){ 
      if (err instanceof SyntaxError) { 
        gutil.log(gutil.colors.red('Syntax Error')); 
        console.log(err.message); 
        // console.log(err.filename+":"+err.loc.line); 
        console.log(err.codeFrame); 
      } else { 
        gutil.log(gutil.colors.red('Error'), err.message); 
      } 
      this.emit('end'); 
     }) 
     .pipe(source('superpos.js')) 
     .pipe(streamify(uglify())) 
     .pipe(gulp.dest('src/main/webapp')); 
}); 

:私が代わりに "watchify" を使用して間違っていない場合は

enter image description here