Javascript-форум (https://javascript.ru/forum/)
-   Сборка проекта, утилиты (https://javascript.ru/forum/server-tools/)
-   -   gulp.watch повторяет действие многократно, вместо одного раза (https://javascript.ru/forum/server-tools/57830-gulp-watch-povtoryaet-dejjstvie-mnogokratno-vmesto-odnogo-raza.html)

guava 21.08.2015 17:58

gulp.watch повторяет действие многократно, вместо одного раза
 
есть код:
var gulp = require('gulp'),
 	concatCSS = require('gulp-concat-css'),
 	rename = require('gulp-rename'),
 	notify = require('gulp-notify'),
 	minifyCSS = require('gulp-minify-css');

gulp.task('default', function() {
    return gulp.src('css/*.css')
    .pipe(concatCSS("style.css"))
    .pipe(minifyCSS())
    .pipe(rename("style.min.css"))
    .pipe(gulp.dest('css'))
    .pipe(notify("Done!"));
});

gulp.task('watch', function () {
	gulp.watch('css/*.css', ['default']);
});


когда запускаю gulp watch и потом сохраняю какой-то css файл происходит цикличное выполнения default, вместо одного раза он выполняет его бесконечное количество раз, пока не остановлю с помощью ^Z
У меня ubuntu 14.04, nodejs v0.10.25

yazonnile 03.10.2015 22:35

Так все правильно.
1 Вы изменяете css файл.
2 Запускается default задача, которая в свою очередь
3 генерирует и вставляет css-файл в папку css/, что равнозначно "изменению css файла", что есть П1 цикла. Пошли заново:)

Abstractionist 25.10.2015 16:36

Столкнулся с точно такой же проблемой. Код аналогичный:)
Собственно интересует, плохо ли это и, если плохо, то как избежать зацикливания.

Safort 25.10.2015 16:44

Abstractionist,
конечно это плохо.

Цитата:

как избежать зацикливания.
Просто выберите другую папку для новых файлов.


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