Глоток задание не заканчивается - PullRequest
0 голосов
/ 10 января 2019

Быть новичком в глотке. У меня есть следующая задача. Мне нужно порождать веб-сервер, а затем другой скрипт должен запустить некоторые вещи с этим веб-сервером. В настоящее время я борюсь с завершением сценария, поскольку задача синхронизации браузера не завершается и не позволяет сценарию завершиться.

'use strict';

const browserSync = require('browser-sync').create();
const cp = require('child_process');
const minimalcss = require('minimalcss');

const gulp = require('gulp');

const clean = require('gulp-clean');

const sourceDir = "_site/";
const deployDir = "public/";

// build the mkdocs Site
gulp.task('build', function() {
  return cp.exec('pipenv run mkdocs build --site-dir ' + sourceDir);
});

// Delete _deploy directory first
gulp.task('prepare', function() {
  return gulp.src(deployDir, {read: false, allowEmpty: true})
      .pipe(clean());
});

// Delete _deploy directory again  // just for testing
gulp.task('cleanup', function() {
  return gulp.src(deployDir, {read: false, allowEmpty: true})
      .pipe(clean());
});

// does not lead to anything, just for testing
gulp.task('inlinecriticalCSS', function(done) {
  minimalcss
    .minimize({ urls: ['http://localhost:9999/' + 'index.html'] })
    .then(result => {
    console.log('OUTPUT', result.finalCss.length, result.finalCss);
  })
  .catch(error => {
    console.error(`Failed the minimize CSS: ${error}`);
  });
  done();
});

// webserver
gulp.task('serve', (done) => {
  browserSync.init({
    port: 9999,
    server: {
      baseDir: sourceDir
    }
  });
  done();
});

// default sequence
gulp.task('default', gulp.series(
  'prepare', 
  'build', 
  'serve',
  'inlinecriticalCSS',
  'cleanup')
);
...