2016-07-24 16 views
0

Dies ist im Wesentlichen ein Versuch, dies zu verwenden: https://github.com/shakyShane/jekyll-gulp-sass-browser-sync/blob/master/gulpfile.js mit benannten Funktionen. Aus welchem ​​Grund auch immer, die Aufgabe jekyllrebuild wird gestartet, aber nicht beendet. Wenn ich eine .html ändern oder .markdown die Konsole gibt die folgenden:Gulp 4 und Jekyll. Task neu erstellen startet, aber nicht beendet

[11:06:10] Starting 'jekyllrebuild'... 
[BS] Reloading Browsers... 

Abgesehen davon, dass es gut funktioniert, nicht sicher hängt, warum wieder aufbauen die Aufgabe. Jede Hilfe sehr geschätzt, gulfile unten. Vielen Dank!

var browsersync = require('browser-sync'); 
var cp   = require('child_process'); 
var gulp  = require('gulp'); 
var gutil  = require('gulp-util'); 
var sass  = require('gulp-sass'); 

var paths = { 
    html: { 
     src: './app/**/*.html', 
    }, 
    jekyll: { 
     src: './app', 
     dist: './_site', 
    }, 
    markdown: { 
     src: './app/**/*.markdown', 
    }, 
    styles: { 
     src: './app/_sass/**/*.scss', 
     dist: './app/css', 
    } 
}; 

gulp.task(jekyllbuild); 
gulp.task(jekyllrebuild, gulp.series(jekyllbuild)); 
gulp.task(serve); 
gulp.task(styles); 
gulp.task(watch); 
gulp.task('default', 
    gulp.series(
     styles, 
     jekyllbuild, 
     gulp.parallel(serve, watch)) 
); 

function jekyllbuild(done) { 
    browsersync.notify('building jekyll'); 
    return cp.spawn('jekyll.bat', ['build'], {stdio: 'inherit'}) 
     .on('close', done); 
} 

function jekyllrebuild() { 
    browsersync.reload(); 
}; 

function serve() { 
    browsersync.init({ 
     server: paths.jekyll.dist, 
     notify: true 
    }) 
} 

function styles() { 
    return gulp.src(paths.styles.src) 
     .pipe(sass().on('error', sass.logError)) 
     .pipe(gulp.dest(paths.jekyll.dist + '/css')) 
     .pipe(browsersync.stream()) 
     .pipe(gulp.dest(paths.styles.dist)) 
} 

function watch() { 
    gulp.watch(paths.styles.src, styles); 
    gulp.watch(paths.html.src, jekyllrebuild); 
    gulp.watch(paths.markdown.src, jekyllrebuild); 
} 

Antwort

0

Diese Linie ist Unsinn:

gulp.task(jekyllrebuild, gulp.series(jekyllbuild)); 

Sie nicht zwei Funktionen gulp.task() passieren können. Mit Blick auf die gulp 3.x task that you linked möchten Sie wahrscheinlich Folgendes in Schluck 4.x:

gulp.task('jekyllrebuild', gulp.series(jekyllbuild, function(cb) { 
    browsersync.reload(); 
    cb(); 
})); 

function watch() { 
    gulp.watch(paths.styles.src, styles); 
    gulp.watch(paths.html.src, gulp.series('jekyllrebuild')); 
    gulp.watch(paths.markdown.src, gulp.series('jekyllrebuild')); 
}