2016-08-05 23 views
0

Wenn ich Aufgabe zum Beispiel laufe comman mit gulp scripts:common, erhalte ich diese Ausgabe:Gulp Lage von unbehandelten Fehlern in events.js: 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 

Nun, für Syntax wäre es nützlich, zu wissen, wo es festgestellt, dass unerwartetes Token Wie man es sagt, um mindestens Datei und Linie zu zeigen? Wo finde ich die evetns.js-Datei? Könnte ich console.trace() oder etwas ähnliches dort setzen?

+0

Bitte, Inhalte der Gulp-Skripte: gemeinsame Aufgabe und die Ausgabe von Gulp-Befehl mit-V-Flag (verbose-Modus). – Nevertheless

Antwort

1

ich lösen dieses Problem, indem jshint auf meine Skripte ausgeführt wird:

/* 
* `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 gibt es Fehler zu ermöglichen, in der lokalen Umgebung passieren, aber in der Produktion scheitern.

Dies wird alle Syntaxfehler in Ihren Skripten verhindern. Zusätzlich können Sie es an andere Aufgabe einzuhaken, sodass sie automatisch vor richtigen Build laufen gelassen:

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

Dies ist die allgemeine Idee.

+1

Könnte dieser Fehler nur mit JavaScript-Skripten auftreten, oder könnte scss auch für einen solchen Fehler verantwortlich gemacht werden? – Bunyk

+0

Gulp sollte nicht abstürzen, nein. Standardmäßig werden Fehler in der Konsole protokolliert, die abhängig von Ihrer Konfiguration ignoriert werden können. – Siegmeyer

+0

Es stürzt nicht ab, es scheitert einfach Build auf Staging und ich bin nicht in der Lage, herauszufinden, warum. Das Problem ist, dass es dort fast 15 Aufgaben gibt, und ich weiß überhaupt nicht, an wen ich mich wenden kann. – Bunyk

1

Sie können die Fehlerstack-Ablaufverfolgung anzeigen, indem Sie der Schluckaufgabe einen benutzerdefinierten Handler "on error" hinzufügen.

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

Auch als weitere Variante, macht gulp-plumber in Pipeline Hinzufügen von Fehlermeldungen mehr klar.