Компания, в которой я работаю, использует систему сборки 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Мне нужно открыть файл журнала в моем редакторе кода, чтобы принудительно перезагрузить браузер.
Я приветствую любые советы по любому вопросу.