「gulpのエラーで止まるタスク」を止める方法

 

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'))

公式サイト:gulp-cached

例えば・・・こんな時に使ってます

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();
});