использовать browserSync.stream () после другой задачи - PullRequest
0 голосов
/ 26 сентября 2019

Когда я использую такой метод stream(), он хорошо работает:

    var gulp = require('gulp'),
    watch = require('gulp-watch'),
    browserSync = require('browser-sync').create();

gulp.task('watch', function () {

    browserSync.init({
        notify: false,
        server: {
            baseDir: "app"
        }
    });       

    watch('./app/assets/styles/**/*.css', gulp.series('cssInject'));
});

    gulp.task('cssInject',  function () {
        return gulp.src('./app/temp/styles/styles.css').pipe(browserSync.stream());

    });

Когда я добавляю еще одну задачу перед выполнением stream(), только эта задача выполнена.

gulp.task('cssInject', gulp.series('styles'), function () {
        return gulp.src('./app/temp/styles/styles.css').pipe(browserSync.stream());
        });

Затем консоль выводит:

[15:16:00] Starting 'cssInject'...
[15:16:00] Starting 'styles'...
[15:16:00] Finished 'styles' after 50 ms
[15:16:00] Finished 'cssInject' after 53 ms

, но CSS не был введен, изменения применяются только после перезагрузки вручную.

Я следовал этот курс , где они используют несколько устаревших пакетов с разным синтаксисом: например, второй аргумент task() устанавливается как массив: ['styles'].Это не сработало, и я обнаружил, что вы должны использовать series() или paralell().

Есть вопрос о StackOverflow , который выглядит так же, как мой, но я не сделалмне не удалось найти ответ на мой вопрос, поскольку я начинающий пользователь gulp.

1 Ответ

0 голосов
/ 27 сентября 2019

Решено: Определил cssInject как отдельный task() и поместил его затем в series() в качестве второго аргумента.

gulp.task('cssInject', function () {
    return gulp.src('./app/temp/styles/styles.css').pipe(browserSync.stream());
});

gulp.task('manageCSS', gulp.series('styles', 'cssInject'));
...