1つめの方法:gulp-notifyとgulp-plumberを併用します
ソースは以下です↓
const notify = require('gulp-notify');
const plumber = require('gulp-plumber');
.pipe(
plumber({
errorHandler:notify.onError({
title:'エラー発見!',
message:'<%= error.message %>',
// Macの通知音を指定しています
sound:'Glass',
}),
})
)
併用すると、gulp-notifyがエラー時に通知してくれます。
notifyだけだと動作しない場合がありますので注意してください。
重要なのは、必ずplumberを使うことです。
通知が要らない場合、最低限のソースは以下です↓
最低限やっておくコード
const plumber = require('gulp-plumber');
.pipe(plumber())
2つめの方法:gulp-cachedを使ってキャッシュで止めます
ソースは以下です↓
const cached = require('gulp-cached');
.pipe(cached('cache'))
例えば・・・こんな時に使ってます
csscombやprettierの処理を止めるために使ったりもできます↓
/*
csscomb (scss)
---------------------------------*/
//combinit
gulp.task('combinit', function (done) {
gulp
.src(paths.scssSrc)
.pipe(
plumber({
errorHandler: notify.onError({
title: 'エラーだよ!',
message: '<%= error.message %>',
// Macの通知音を指定しています
sound: 'Glass',
}),
})
)
.pipe(csscomb())
// prettier
.pipe(prettier({ scssoptions }))
// prettier end
.pipe(cached('cache'))
.pipe(debug({ title: 'initcomb: ' }))
.pipe(
notify({
title: 'いいね!エラーはないよ!',
message: 'combinit success',
// Macの環境音を指定しています
sound: 'Tink',
})
)
.pipe(gulp.dest(paths.scssDist));
done();
});