Node.jsでデスクトップ通知(gulpもね)
Node.jsでデスクトップ通知(gulpもね):
gulpでdeploy作業を行なっているのですが、処理に時間がかかるので、なんか通知みたいなのできないかなと思い、調べてみると良いモジュールがあったのでそのメモ。
node-notifierを使うとNode.jsでデスクトップ通知ができるようです。
https://github.com/mikaelbr/node-notifier
さっそくインストールしてみます。
package.jsonに追加されます。
使用するときは以下のように使います。
アイコンやサウンドも設定できるようです。
他にも色々オプションがあるようです。
gulpで完了したときとエラー発生したときに通知送りたいなと思いまして、組み合わせてみました。
まずはタスクが成功したときの処理。
そのままでは使えないっぽいので、gulp-notifyを使用します。
gulp-notifyがインストールされました。
成功したときの通知はタスクの最後にpipeで繋げることにします。
これで処理が完了した時に通知されるようになりました。
失敗したときは通知はgulp-plumberと組み合わせます。
gulp-plumberを使用すればgulpのエラーハンドリングができます。
エラー処理を記述し、gulp-plumberでエラー時に実行させます。
これでエラー時にも通知が届くようになり、deploy中に他の作業が気兼ねなくできるようになりました!
gulpでdeploy作業を行なっているのですが、処理に時間がかかるので、なんか通知みたいなのできないかなと思い、調べてみると良いモジュールがあったのでそのメモ。
node-notifier
node-notifierを使うとNode.jsでデスクトップ通知ができるようです。https://github.com/mikaelbr/node-notifier
さっそくインストールしてみます。
$npm install --save-dev node-notifier
package.json
"devDependencies": { "node-notifier": "5.3.0", }
node-notifierを使用する
使用するときは以下のように使います。const notifier = require('node-notifier'); notifier.notify({ title: 'タイトル', message: 'メッセージ', });
const notifier = require('node-notifier'); const path = require('path'); notifier.notify({ title: 'タイトル', message: 'メッセージ', icon: path.join(__dirname, '/images/hogehoge.png'), // 画像 sound: 'Funk', // Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tinkから選択 // trueだとデフォルトのBottle });
gulpと組み合わせる
gulpで完了したときとエラー発生したときに通知送りたいなと思いまして、組み合わせてみました。
成功時の通知
まずはタスクが成功したときの処理。そのままでは使えないっぽいので、gulp-notifyを使用します。
$npm install --save-dev gulp-notify
package.json
"devDependencies": { "gulp-notify": "^3.2.0", }
gulpfile.js
const gulp = require("gulp"); const gulpnotify = require('gulp-notify'); const path = require('path'); gulp.task('deploy', (cb) => { gulp.src(['src/**'], { base: '.' }) // 本処理 .pipe(hogehoge()) // 処理の最後に通知する .pipe(gulpnotify({ title: 'deploy完了しました', icon: path.join(__dirname, '/images/hogehoge.png'), sound: 'Funk', })); });
失敗時の通知
失敗したときは通知はgulp-plumberと組み合わせます。gulp-plumberを使用すればgulpのエラーハンドリングができます。
$npm install --save-dev gulp-plumber
package.json
"devDependencies": { "gulp-plumber": "^1.2.1", }
gulpfile.js
const gulp = require("gulp"); const gulpnotify = require('gulp-notify'); const path = require('path'); const plumber = require("gulp-plumber"); gulp.task('deploy', (cb) => { gulp.src(['src/**'], { base: '.' }) // gulp-plumberでエラーハンドリング .pipe(plumber({errorHandler: (error) => { // エラー処理 // エラー処理を記述 hogehogeError(); // エラー通知 notifier.notify({ title: '実行エラー', message: error.message, icon: path.join(__dirname, '/images/hogehoge.png'), sound: 'Funk', }); cb(error); }})) // 本処理 .pipe(hogehoge()) // 処理の最後に通知する .pipe(gulpnotify({ title: 'deploy完了しました', icon: path.join(__dirname, '/images/hogehoge.png'), sound: 'Funk', })); });
コメント
コメントを投稿