gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する

以前gulpのインストールと、Sassをコンパイルするための最低限の設定を行いました。
今回はそれに引き続き、ファイルを監視してSassが更新されたら自動でコンパイルするタスクを作成してみます。
やりたいこと
今回やりたい事としては下記の通り。
- .scssファイルが更新された時に、sassタスクを実行する
- タスク名はwatchとする
- デフォルトタスクにwatchタスクを登録する
デフォルトタスクにそのままファイルを監視する処理を書いてもいいのですが、今回はファイル監視を目的とするwatchタスクを作成して、それをデフォルトタスクでも読み込むようにしてみます。
タスクの作成
watchタスクの作成
昔はgulp-watchというプラグインを別途インストールして読み込む必要があったのですが、今はgulpに入っているため、インストールの必要はありません。
使い方は下記の通り。
gulp.watch('監視するファイル', 処理)実際にタスクを組み込む際は下記のようになります(少し冗長ですが)。
//プラグインの読み込み
const gulp = require('gulp');
const sass = require('gulp-sass');
//タスクの設定(定義)
//タスク1 - Sassのコンパイル
gulp.task('sass', () => {
return gulp.src('assets/scss/style.scss')
.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'], () => {
}));これでgulpを動かすと、監視ファイルに変更があった際に、自動でタスクが実行されます。
終了したい時はターミナルでcontrol + Cを押せば終了できます。


js-cookieでウェブサイトのダークモード表示設定をユーザーごとに保存しておく方法
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
iOS Safariでinputタグにフォーカスを合わせると、自動で画面が拡大してしまう原因と解決方法
SourceTreeの外部Diff / MergeツールをKaleidoscopeに設定する
コーディング時のclass名の省略はどこまでして良いのか?「img / btn / ttl / desc / thumb」
Webサイト制作の基礎の基礎、HTMLって何?
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
Nuxt.jsでVuexストア連携を行う方法|Nuxt.jsの基本
iTerm2を使いこなすために覚えておきたいショートカット集
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
CSS Nite in Kobe, vol.42「ユーザーの感情に寄り添い、検索エンジンからも評価される「ドリルライティング」実践講座」に参加してきました
Google Chromeの開発者ツールに出てくる「[Deprecation] chrome.loadTimes() is deprecated」に関して
一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる
AutoWakeで音を一切ならさずApple Watchの振動で朝目覚める
Marpで既存Markdownファイルを使ったスライド作成時に、見出しごとにスライドを分割する方法
Figmaのテキストやオブジェクトを斜めに変形・旋回させるプラグイン「SkewDat」
iPhoneで特定のアプリだけ別の言語設定に切り替える方法
Illustratorのサンプルテキストの割り付けを少しだけ便利にする
WordPressのカスタムメニューでは、内部リンクに対してカスタムリンクは使わない!
Visual Studio Codeでファイル差分の比較を行う方法