У меня есть часы для моих scss-файлов, которые отлично работают. Когда происходит изменение, задача выполняется.gulp watch on change wait for task to complete before execution on change
var sassWatch = gulp.watch([paths.root + '**/*.scss'], ['sass']);
Теперь, когда обнаруживается изменение, я хочу взять файл, который был изменен, измените расширение на .css, а затем сделать что-то с указанным CSS файл.
sassWatch.on('change', function (ev) {
changeNotification('Sass file', ev.type, 'Running compilation');
ev.path = ev.path.substr(0, ev.path.lastIndexOf(".")) + ".css";
return gulp.src(ev.path).pipe(slang(ev.path)); // DO SOMETHING WITH CSS FILE
});
Проблема заключается в том, что последняя строка в («изменения» ... прогонов перед задачей Sass завершена.
[11:30:46] Sass file was changed. Running compilation & slinging to AEM.
[11:30:46] Starting 'sass'...
[11:30:46] Starting 'sass:compile'...
[11:30:46] DO SOMETHING WITH CSS FILE
[11:30:50] Finished 'sass:compile' after 4.59 s
[11:30:50] Starting 'css:clean'...
[11:30:50] Finished 'css:clean' after 3.45 ms
[11:30:50] Finished 'sass' after 4.6 s
Есть ли способ, чтобы предотвратить некоторые или все ? на функции изменения от исполнения до того как задача была завершена Мой идеальный сценарий будет выглядеть следующим образом:
[11:30:46] Sass file was changed. Running compilation & slinging to AEM.
[11:30:46] Starting 'sass'...
[11:30:46] Starting 'sass:compile'...
[11:30:46] Finished 'sass:compile' after 4.59 s
[11:30:50] Starting 'css:clean'...
[11:30:50] Finished 'css:clean' after 3.45 ms
[11:30:50] Finished 'sass' after 4.6 s
[11:30:50] DO SOMETHING WITH CSS FILE