failAfterError gulpEslint

Здравствуйте, у меня есть следующая задача gulp, которая связывает решение и дает сбой после любой ошибки в процессе linting, я хотел бы, чтобы он не работал с текстом, а не просто зависал в куче, я не уверен, как это реализовать. Любая помощь будет оценена.

gulp.task('lint-solution', function(done){
log('Linting solution')
return gulp.src(['../CRMPortal/**/*.js','../Common/**/*.js','!../Common/scripts/**/*','!../node_modules/**','!../CRMPortal/dist/**','!../CRMPortal/gulpfile.js'])
  .pipe($.eslint({configFile: ".eslintrc.json"}))
  .pipe($.eslint.format(
    reporter, function(results){
      fs.writeFileSync(path.join(__dirname,'report.html'), results);
    }
  ))
  .pipe($.eslint.failAfterError()); <-- I want text I provide to be printed on error here should that be the case , not just the error
})

На данный момент (очевидно) все, что я получаю, это:

Message:
Failed with 1 error

1 ответ

Вы не можете изменить эту строку:

Message:

Эта строка печатается самой gulp всякий раз, когда возникает ошибка. Вы не можете подавить его, если не подавите саму ошибку, и в этом случае ваша задача не будет выполнена, если возникнет ошибка.

Вы можете изменить эту строку, однако:

Failed with 1 error

Эта строка хранится в объекте ошибки, который испускается gulp-eslint, Вы можете получить доступ к объекту ошибки, зарегистрировав .on('error') обработчик вашего потока, а затем измените сообщение, если ошибка была отправлена gulp-eslint:

.pipe($.eslint.failAfterError()) 
.on('error', function(err) {
  if (err.plugin === 'gulp-eslint') {
    err.message = 'Oops';
  }
});

Это выводит следующее:

Message:
    Oops
Другие вопросы по тегам