Как остановить глоток после выполнения задания? - PullRequest
2 голосов
/ 27 марта 2019

Мне нужна помощь, я использую gulp4 и имею задачу сборки scss:

export const Style = () => src(path.style.src)
    .pipe(sourcemaps.init())
    .pipe(postcss([
        require('postcss-nested'),
        require('autoprefixer')
     ], {syntax: require('postcss-scss')}))
     .pipe(concat('style.min.css'))
     .pipe(sourcemaps.write('../maps'))
     .pipe(dest(path.style.dist))
     .pipe(browserSync.reload({stream: true}));

и просмотр файлов этой задачи:

export const WatchFiles = () =>
    watch(path.style.watch, Style);

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

let RunServer = parallel(
    WatchFiles,
    Serve
);

let Build = series(
    Style,
    RunServer
);

Также на всякий случай добавлю серверное задание, может, оно поможет

export function Serve(done) {
    browserSync.init({
        server: {
            baseDir: path.build,
            index: 'index.html'
        },
        ghostMode: true,
        notify: false,
        host: '0.0.0.0',
        port: 9000
    });

    done();
};

Но если я просто выполню задачу «Стиль», она не остановит просмотр моих файлов и не завершит задачу. Как сделать так, чтобы при выполнении задания, без задания «WatchFiles», останавливался строитель?

терминал

ссылка на проект gitlab

1 Ответ

0 голосов
/ 27 марта 2019

Я думаю, что обратный вызов (выполненный) в вашей функции стиля решит проблему остановки.

export const Style = (done) => {
  src(path.style.src)
    .pipe(sourcemaps.init())
    .pipe(postcss([
      require('postcss-nested'),
      require('autoprefixer')
    ], { syntax: require('postcss-scss') }))
    .pipe(concat('style.min.css'))
    .pipe(sourcemaps.write('../maps'))
    .pipe(dest(path.style.dist))
    .pipe(browserSync.reload({ stream: true }));

    done();
}
...