Gulp Watch не запускает подзадачу sass при изменении файла

Я использую Gulp для компилятора watch и sass. Когда я начинаю «смотреть» в первый раз, запускается компилятор «sass» и создаются файлы css по заданному пути. Однако, когда я меняю файлы .scss, он больше не вызывает компилятор «sass». Ниже приведены две мои задачи и переменные.

gulp.task('sass', function () {
    gulp.src(config.sassPath)
        .pipe(sass())
        .pipe(gulp.dest(config.cssPath))
        .pipe(livereload());
});

gulp.task('watch', false, function () {
    livereload.listen(8189);
    gulp.src(config.watchPaths)
            .pipe(watch(config.watchPaths, function (event) {
                gulp.start( 'sass', 'js-hint', 'server','test');
                livereload();
            }))
            .pipe(livereload());
});

Следующую команду я использую для запуска задачи "смотреть".

gulp watch

Я вижу, что "часы" перезагружаются, когда я меняю файл .scss. Ниже приведен журнал для этого.

[19:49:30] public/sass/html-controls.scss was changed
[19:49:30] /Users/dkuma204/Desktop/Dilip/Projects/OPEN/SourceCode/AWF/OPENApp/application/public/sass/html-controls.scss reloaded.

Не уверен, что мне здесь не хватает. Пожалуйста помоги.


person joy    schedule 13.02.2015    source источник


Ответы (1)


Почему это так сложно? Попробуй это:

gulp.task('watch', false, function () {
    livereload.listen(8189);
    gulp.watch(config.watchPaths,['sass', 'js-hint', 'server', 'test'])       
});

И каждая ваша задача, требующая livereload, должна иметь в конце .pipe (livereload ()). Вы не должны использовать gulp start. Вот один из комментариев обсуждения на github:

gulp.start намеренно недокументирован, потому что он может привести к сложным файлам сборки, и мы не хотим, чтобы люди использовали его

person niba    schedule 13.02.2015
comment
Он не работает .... когда я использовал, как вы предложили, я вижу, что gulp работает только с watch, а не с другими задачами ... следующие журналы ... bash-3.2 $ gulp watch [13:14:37] Использование gulpfile ~ /Desktop/Dilip/Projects/OPEN/SourceCode/AWF/OPENApp/gulpfile.js [13:14:37] Запуск "просмотра" ... [13:14:37] Завершение "просмотра" через 75 мс - person joy; 14.02.2015
comment
Вы уверены, что изменили gulp.src на gulp.watch в задаче наблюдения? - person niba; 15.02.2015
comment
дааа .... Я просто копирую предложенный вами подход .. но он не работает ... похоже, что дочерние задачи вообще не запускаются. - person joy; 15.02.2015
comment
Вы пытались изменить что-то в своих файлах, чтобы проверить, не будет ли это пробуждать одну из указанных вами задач? Я спрашиваю, потому что ваша часть журнала в порядке. Задача «Наблюдать» должна быть запущена и завершена. Его работа заключалась в том, чтобы запустить gulp.watch, работающий под капотом. - person niba; 15.02.2015
comment
удивительно ... используя ваш подход, теперь я получаю следующую ошибку ... похоже, какая-то другая проблема в моем gulpfile.js gulp [62773] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc () = ›(null) ( -21) - person joy; 15.02.2015
comment
github.com/floatdrop/gulp-watch/issues/7 здесь, у парня та же проблема. Попробуйте обновить свой узел. - person niba; 15.02.2015
comment
Если вы хотите запускать все задачи вместе с задачей наблюдения, вам следует выполнить еще одну такую ​​задачу: gulp.task ('start', ['sass', 'js-hint', 'server', 'test', 'watch' ]); Он запустит все задачи сборки в первый раз, а затем установит наблюдатель для файлов. - person niba; 15.02.2015