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行追加するだけで通知処理が追加できました。
ターミナルだけだと、エラーが発生したことに気が付かず、作業がストップしてしまう事があるので、デスクトップ通知はかなり助かります。

アイコンフォントをPCにインストールしている場合は、コーディング後の確認に注意
Visual Studio Codeのマルチカーソル機能で文字操作を一括で行う
CSSのカスタムプロパティ(変数機能)の使い方
コーディング時にちゃんと意識したい複数語の連結方法一覧(キャメルケース・スネークケース・ケバブケース)
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
Vue CLIでVue.jsの開発環境をセットアップするまでの流れ
CSSのz-indexの確認や管理を便利にする方法
「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
Apacheのテストページを非表示にする方法
Visual Studio Codeの基本|概要やインストールから日本語化など最低限の設定方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング