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']); }); };