Как правильно обновить выбор файлов chokidar, не объявляя новую переменную? - PullRequest
0 голосов
/ 07 декабря 2018

Предположим, что мы создали экземпляр chokidar, но затем выбор файлов, которые следует просмотреть, был изменен.Если я не хочу создавать новую переменную, достаточно ли просто присвоить новому наблюдателю chokidar с новым выбором файлов одну и ту же переменную?Конечно, в приведенном ниже коде, я бы сказал, что filesSelection1 больше не будет отслеживаться.

let filesSelection1 = 'test/files/selection/1/**.*';
let filesSelection2 = 'test/files/selection/2/**.*';

let stylesWatcher = chokidar.watch(filesSelection1);

// is it correct?
stylesWatcher = chokidar.watch(filesSelection2);

1 Ответ

0 голосов
/ 21 декабря 2018

Я не знаю chokidar (и потоков NodeJS) в деталях, но после некоторых экспериментов я понял, что stylesWatcher = null в приведенном ниже коде не прекратит просмотр:

let stylesWatcher = chokidar.watch(filesSelection1);
stylesWatcher = null;

Если вы хотите обновить chokidar наблюдатель без просмотра будет прекращен, ниже код пройден тестами:

let stylesWatcher = chokidar.watch(filesSelection1);
let bufferedOldWatcher = stylesWatcher;
stylesWatcher = chokidar.watch(filesSelection2);
bufferedOldWatcher.close(); // now we can close watching on old instance
...