gulp-plumberとgulp-notifyでgulpエラー時にデスクトップで通知がくるようにする

gulpで監視状態にして何か記述ミスをした時、ターミナルを見ないとgulpでエラーが発生している事に気が付きません。
そこで今回はgulp-plumberとgulp-notifyというプラグインを利用して、エラー時にデスクトップ通知が来るようにしてみます。
ちなみに、gulp-plumberはエラー時にタスクが強制終了してしまうのを防止するプラグインで、gulp-notifyがデスクトップに通知を表示してくれるプラグインです。
この2つを使うことで下の画像のようなエラー通知を表示できます。

gulp-plumberとgulp-notifyのインストール
今回はSassのコンパイルを目的にタスクを作成してみます。
まずはいつも通り、gulpとgulp-sassに加えてgulp-plumberとgulp-notifyをインストールします。
npm install -D gulp
npm install -D gulp-sass
npm install -D gulp-plumber
npm install -D gulp-notifygulp-notifyの使い方
gulp-plumberは呼び出すだけでOKです。
const plumber = require('gulp-plumber');
plumber();gulp-notifyは呼び出した後に.onError('エラーメッセージ')の形で、通知できます。
エラーメッセージ内で<% = error.message %>と入力しておくと、エラー内容の表示も可能です。ただ、タスクが停止してしまうと意味がないので、基本的にplumberの括弧内に記述します。
gulpfile.jsconst plumber = require('gulp-plumber');
const notify = require('gulp-notify');
plumber(notify.onError('Error: <%= error.message %>'))実際にSassのコンパイルタスクに組み込むと書きのようになります。
//プラグインの読み込み
const gulp = require('gulp');
const sass = require('gulp-sass');
const notify = require('gulp-notify');
//タスクの設定(定義)
//タスク1 - Sassのコンパイル
gulp.task('sass', () => {
return gulp.src('assets/scss/style.scss')
.pipe(plumber(notify.onError('Error: <%= error.message %>')))
.pipe(sass({
outputStyle: 'compact' //通常の見た目にしたい場合はexpanded
}))
.pipe(gulp.dest('./'));
});
//タスク2 - ファイルを監視する(ファイルに変更があれば、タスク1を行う)
gulp.task('watch', () => {
gulp.watch('assets/scss/**/*.scss', gulp.series(['sass']));
});
//デフォルトタスクに、タスク2を設定
gulp.task('default', gulp.series(['watch'], () => {
}));プラグインの読み込みを除けば、1行追加するだけで通知処理が追加できました。
ターミナルだけだと、エラーが発生したことに気が付かず、作業がストップしてしまう事があるので、デスクトップ通知はかなり助かります。

Visual Studio Codeを使ったコード整形方法(Fomatter)
Nuxt.jsの基本と最初のセットアップ「プロジェクトの作成と起動をするまでの流れ」
WordPressで既に公開済みの記事の更新を、指定した日付に反映する方法「PublishPress Revisions」
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
Apacheのテストページを非表示にする方法
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
Vue.jsを使う人が最低限導入しておきたいVisual Studio Codeの拡張機能
MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法