2016-08-05 5 views
0

私はcomman gulp scripts:commonを使用して、たとえば、タスクを実行すると、私はこの出力を得る:ガルプ場所:141

まあ
[14:05:47] Requiring external module babel-core/register 
[14:05:49] Using gulpfile /home/sites/blablabla/gulpfile.babel.js 
[14:05:49] Starting 'scripts:common'... 

events.js:141 
     throw er; // Unhandled 'error' event 
    ^
SyntaxError: Unexpected token 

、それがことがわかったところでSyntaxErrorことは知っていることは有用であろう予期しないトークン。ファイルと行を少なくとも表示するにはどうすればいいですか?そのevetns.jsファイルはどこにありますか? console.trace()などを置くことができますか?

+0

gulpのスクリプトの内容を投稿してください。一般的な作業とgulpコマンドの-vフラグ付きの出力(冗長モード)。 – Nevertheless

答えて

1

私は私のスクリプトでjshintを実行することによってこの問題を解決:

/* 
* `gulp check_scripts` - Lints script files 
*/ 
gulp.task('check_scripts', function() { 
    return gulp.src([ 
    'gulpfile.js' //, other scripts to check 
    ]) 
    .pipe(jshint()) 
    .pipe(jshint.reporter('jshint-stylish')) 
    .pipe(gulpif(enabled.failJSHint, jshint.reporter('fail'))); 
}); 

enabled.failJSHintエラーがローカル環境に渡すことができますが、生産に失敗することがあります。

これは、スクリプトの構文エラーを解消します。 また、あなたはそれが適切なビルド前に自動的に実行されますので、他のタスクにそれをフックすることもできます。

gulp.task('default', ['check_scripts', 'clean'], function() { 
    gulp.start('build'); 
}); 

これが一般的な考え方です。

+1

このバグは、javascriptスクリプトでのみ発生する可能性がありますか、scssでもこのようなエラーが起きる可能性がありますか? – Bunyk

+0

ガルプがクラッシュすることはありません。デフォルトではコンソールにエラーが記録されますが、設定に応じて無視したり無視したりすることができます。 – Siegmeyer

+0

それはクラッシュしません、それは単にステージングでビルドに失敗し、私は理由を把握することができません。問題はそこに約15のタスクがあり、私はそれらのどれを責めるべきかも分かりません。 – Bunyk

1

カスタムスタックエラーハンドラをgulpタスクに追加することで、エラースタックのトレースを見ることができます。

gulp.task('compile:js', function() { 
    return (
     gulp.src(jsPath) 
     .pipe(yourCustomTask()) 
     .on('error', function(err) { 
      console.log(err.stack); 
      this.end(); 
     }) 
    ); 
}); 
0

はまた、別の変形例として、パイプラインへgulp-plumberを追加するとエラーメッセージがより明確になります。