Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Просто вотчер (https://javascript.ru/forum/offtopic/50475-prosto-votcher.html)

l-liava-l 27.09.2014 17:03

Просто вотчер
 
Доброго времени суток!

Появилась необходимость написать небольшой вотчер, решил юзать ноду.

(function() {
    var fs = require('fs');
    var ncp = require('ncp').ncp;

    var inputUrl = './gui/static/css/styles.less';
    var outputUrl = './static/css/styles.less';

    (function onChange() {
        ncp(inputUrl, outputUrl)

        fs.watch(inputUrl, onChange);
    })()
})()


Все работает. Но меня смущает рекурсия.

Разве fs.watch не должен следить за каждым изменением сам без перезапуска?:)

kobezzza 27.09.2014 17:43

Ну он и следит, это же событие. Зачем тут вообще рекурсия нужна?

l-liava-l 27.09.2014 18:07

Цитата:

Ну он и следит, это же событие. Зачем тут вообще рекурсия нужна?
Я сюда с аналогичным вопросом и пришел)
После первого изменения onChange вызвывается а потом тупо перестает. И приходится поднимать еще раз.

Мб как то связано с вебштормом, в котором редактируется файл

kobezzza 28.09.2014 10:58

Цитата:

Мб как то связано с вебштормом, в котором редактируется файл
Да, тоже сегодня столкнулся, WS может колдовать с файлом и из-за этого могут быть проблемы. Решил так: повесил вотчер на папку с файлом и делегировал событие.

kobezzza 28.09.2014 12:37

В процессе работы выяснилось, что вотчеры в ноде сделаны довольно убого, с точки зрения кроссплатформенности, например, в Win бажит на вложенных папках.

Заюзал модуль https://www.npmjs.org/package/monocle, который вроде как фикит эти косяки.


Часовой пояс GMT +3, время: 22:52.