2016-08-05 5 views
0

При запуске задачи, например с помощью Comman gulp scripts:common, я получаю этот выход:Глоток расположение необработанной ошибки в 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 

Ну, SyntaxError было бы полезно знать, где он обнаружил, что неожиданный маркер. Как сказать, чтобы показать хотя бы файл и строку? Где найти файл evetns.js? Могу ли я поставить console.trace() или что-то в этом роде?

+0

Пожалуйста, размещайте содержимое скриптов gulp: общая задача и вывод команды gulp с флагом -v (режим verbose). – 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

Gulp не должен падать, нет. По умолчанию он будет регистрировать ошибки на консоли, которые можно игнорировать или нет, в зависимости от вашей настройки. – 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 в трубопровод делает сообщение об ошибке более понятным.