Получение Gulp 4 для запуска команд оболочки с помощью watch и browsersync - PullRequest
0 голосов
/ 18 октября 2019

Компания, в которой я работаю, использует систему сборки Kubernetes с ksync (https://github.com/ksync/ksync)

. Я пытался использовать gulp для следующих действий:

  • Выполните команду оболочки, которая сохранит любой вывод в файл журнала.
  • Просмотрите файл журнала на наличие изменений.
  • После завершения вывода запустите browsersync.

Это gulpfile:

const gulp = require('gulp');
const spawn = require('child_process').spawn;
const browsersync = require("browser-sync").create();

function browserSync(done) {
    browsersync.init({
        proxy: "[url]",
        watchOptions: {
            ignored: '*.txt'
        },
        browser: ["firefox"]
    });
    done();
}

// BrowserSync Reload
function browserSyncReload(done) {
    browsersync.reload();
    done();
}

function watchFiles() {
    gulp.watch("ksync-output.log", { delay: 500 }, browserSyncReload);
}

gulp.task('runKsync', function() {
    return spawn('ksync watch > ksync-output.log');
});

// define complex tasks
const develop = gulp.parallel(watchFiles, browserSync);
const runKsync = gulp.series(ksyncWatch);

// export tasks
exports.runKsync = runKsync;
exports.watchFiles = watchFiles;
exports.develop = develop;
exports.default = develop;

У меня две проблемы:

1) Я не могу заставить gulp запускать команды оболочки. Я продолжаю получать эту ошибку:

[11:56:58] The following tasks did not complete: runKsync
[11:56:58] Did you forget to signal async completion?

2) Если я закомментирую задачу «runKsync» и выполню команду оболочки вручную, то задача наблюдения не будет работать должным образом.

IМне нужно открыть файл журнала в моем редакторе кода, чтобы принудительно перезагрузить браузер.

Я приветствую любые советы по любому вопросу.

...