watch()#

Globを監視し、変更が発生したときにタスクを実行できるようにします。タスクは、他のタスクシステムと同様に一貫して処理されます。

使用方法#

const { watch } = require('gulp');
watch(['input/*.js', '!input/something.js'], function(cb) {
// 本文省略
cb();
});

シグネチャ#

watch(globs, [options], [task])

パラメータ#

パラメータ備考
globs
(必須)
文字列
配列
ファイルシステム上で監視するGlob
optionsオブジェクト詳細は以下のオプションを参照してください。
task関数
文字列
タスク関数または`series()`と`parallel()`によって生成された複合タスク。

戻り値#

監視設定をきめ細かく制御するためのchokidarのインスタンス。

エラー#

文字列でないもの、または文字列でないものが含まれる配列が`globs`として渡されると、「文字列以外のものが監視パスとして提供されました」というメッセージのエラーがスローされます。

文字列または配列が`task`として渡されると、「監視タスクは関数である必要があります(オプションでgulp.parallelまたはgulp.seriesを使用して生成されます)」というメッセージのエラーがスローされます。

オプション#

名前デフォルト値備考
ignoreInitial真偽値truefalseの場合、ファイルパスが検出されるときにインスタンス化中にタスクが呼び出されます。起動時にタスクをトリガーするために使用します。
**注意:** このオプションはchokidarに渡されますが、デフォルト値は`false`ではなく`true`です。
delay数値200ファイルの変更とタスクの実行の間のミリ秒単位の遅延。多くのファイルの検索と置換など、タスクを実行する前に多くの変更を待つことができます。
queue真偽値truetrueでタスクがすでに実行されている場合、ファイルの変更は単一のタスク実行をキューに入れます。長時間実行されるタスクが重複しないようにします。
events文字列
配列
[ 'add',
'change',
'unlink' ]
タスク実行をトリガーするために監視されているイベント。 `'add'`、`'addDir'`、`'change'`、`'unlink'`、`'unlinkDir'`、`'ready'`、および/または`'error'`にすることができます。さらに、`'ready'`と`'error'`以外のすべてのイベントを表す`'all'`も使用できます。
このオプションはchokidarに直接渡されます。
persistent真偽値truefalseの場合、ウォッチャーはNodeプロセスを実行し続けません。このオプションを無効にすることはお勧めしません。
このオプションはchokidarに直接渡されます。
ignored配列
文字列
正規表現
関数
無視するGlobを定義します。関数が提供された場合、パスごとに2回呼び出されます。1回目はパスのみ、2回目はパスとファイルの`fs.Stats`オブジェクトを使用します。
このオプションはchokidarに直接渡されます。
followSymlinks真偽値truetrueの場合、シンボリックリンクとリンクされたファイルの両方の変更がイベントをトリガーします。falseの場合、シンボリックリンクの変更のみがイベントをトリガーします。
このオプションはchokidarに直接渡されます。
cwd文字列相対パスと組み合わされて絶対パスを形成するディレクトリ。絶対パスは無視されます。 `globs`と`path.join()`の組み合わせを避けるために使用します。
このオプションはchokidarに直接渡されます。
disableGlobbing真偽値falsetrueの場合、すべての`globs`は特殊文字があってもリテラルパス名として扱われます。
このオプションはchokidarに直接渡されます。
usePolling真偽値falsefalseの場合、ウォッチャーは監視に`fs.watch()`(またはMacではfsevents)を使用します。trueの場合、代わりに`fs.watchFile()`ポーリングを使用します。ネットワークまたはその他の非標準の状況でファイルを正常に監視するために必要です。 `useFsEvents`のデフォルトをオーバーライドします。
このオプションはchokidarに直接渡されます。
interval数値100`usePolling: true`と組み合わせて使用​​します。ファイルシステムポーリングの間隔。
このオプションはchokidarに直接渡されます。
binaryInterval数値300`usePolling: true`と組み合わせて使用​​します。バイナリファイルのファイルシステムポーリングの間隔。
このオプションはchokidarに直接渡されます。
useFsEvents真偽値truetrueの場合、使用可能な場合は監視にfseventsを使用します。明示的にtrueに設定すると、`usePolling`オプションよりも優先されます。falseに設定すると、自動的に`usePolling`がtrueに設定されます。
このオプションはchokidarに直接渡されます。
alwaysStat真偽値falsetrueの場合、変更されたファイルに対して常に`fs.stat()`を呼び出します。ファイルウォッチャーの速度が低下します。 `fs.Stat`オブジェクトは、chokidarインスタンスを直接使用している場合にのみ使用できます。
このオプションはchokidarに直接渡されます。
depth数値監視されるディレクトリのネストされたレベルの数を示します。
このオプションはchokidarに直接渡されます。
awaitWriteFinish真偽値falseこのオプションは使用しないでください。代わりに`delay`を使用してください。
このオプションはchokidarに直接渡されます。
ignorePermissionErrors真偽値false読み取り権限のないファイルを監視するには、trueに設定します。その後、EPERMまたはEACCESエラーのために監視が失敗した場合、それらはサイレントにスキップされます。
このオプションはchokidarに直接渡されます。
atomic数値100`useFsEvents`と`usePolling`がfalseの場合にのみアクティブです。一部のエディターによる「アトミック書き込み」から発生するアーティファクトを自動的に除外します。削除されたミリ秒以内にファイルが再び追加されると、unlinkしてからaddではなく、変更イベントが発行されます。
このオプションはchokidarに直接渡されます。

Chokidarインスタンス#

`watch()`メソッドは、chokidarの基になるインスタンスを返し、監視設定をきめ細かく制御できます。変更されたファイルの`path`または`stats`を提供する個々のイベントハンドラーを登録するために最も一般的に使用されます。

chokidarインスタンスを直接使用する場合、非同期完了、キューイング、遅延などのタスクシステムの統合にアクセスできません。

const { watch } = require('gulp');
const watcher = watch(['input/*.js']);
watcher.on('change', function(path, stats) {
console.log(`ファイル ${path} が変更されました`);
});
watcher.on('add', function(path, stats) {
console.log(`ファイル ${path} が追加されました`);
});
watcher.on('unlink', function(path, stats) {
console.log(`ファイル ${path} が削除されました`);
});
watcher.close();

watcher.on(イベント名, イベントハンドラ)

指定されたイベントが発生したときに呼び出されるeventHandler関数を登録します。

パラメータ備考
イベント名文字列監視可能なイベントは、'add''addDir''change''unlink''unlinkDir''ready''error'、または'all'です。
イベントハンドラ関数指定されたイベントが発生したときに呼び出される関数。引数の詳細は以下の表を参照してください。
引数備考
パス文字列変更されたファイルのパス。cwdオプションが設定されている場合、パスはcwdを削除することによって相対パスになります。
statsオブジェクトfs.Stat オブジェクトですが、undefinedの場合があります。 alwaysStatオプションがtrueに設定されている場合、statsは常に提供されます。

watcher.close()

ファイルウォッチャーをシャットダウンします。シャットダウンすると、イベントは発生しなくなります。

watcher.add(globs)

既に実行中のウォッチャーインスタンスに追加のglobを追加します。

パラメータ備考
globs文字列
配列
監視対象に追加するglob。

watcher.unwatch(globs)

監視されているglobを削除します。ウォッチャーは残りのパスで監視を続けます。

パラメータ備考
globs文字列
配列
削除するglob。