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