const browserSync = require('browser-sync').create(); const cp = require('child_process'); const jekyll = process.platform === 'win32' ? 'jekyll.bat' : 'jekyll'; const scssPath = '_scss/**/*.scss'; const jsPath = '_scripts/*.js'; const templatePath = [ '*.html', '+(_includes|_layouts)/*.html', '*.yml', '_data/*.yml', '_posts/*', ]; module.exports = gulp => { // run `jekyll build` gulp.task('jekyll-build', done => { return cp.spawn(jekyll, ['build'], { stdio: 'inherit' }).on('close', done); }); // run `jekyll build` with _config_dev.yml gulp.task('jekyll-dev', done => { return cp .spawn(jekyll, ['build', '--config', '_config.yml,_config_dev.yml'], { stdio: 'inherit', }) .on('close', done); }); // Rebuild Jekyll then reload the page gulp.task('jekyll-rebuild', ['jekyll-dev'], () => { browserSync.reload(); }); gulp.task('serve', ['jekyll-dev'], () => { browserSync.init({ server: { baseDir: '_site', }, }); gulp.watch(scssPath, ['sass', browserSync.reload]); gulp.watch(jsPath, ['scripts', browserSync.reload]); gulp.watch(templatePath, ['jekyll-rebuild']); }); };