You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vestride_Shuffle/gulpfile.js

81 lines
1.5 KiB
JavaScript

'use strict';
const gulp = require('gulp');
const gutil = require('gulp-util');
const webpack = require('webpack');
const shell = require('gulp-shell');
const sass = require('gulp-sass');
let config = {
watch: false,
};
function compile(done) {
let main = Object.assign({}, require('./webpack.config.js'));
let min = Object.assign({}, require('./webpack.config.min.js'));
let compiler = webpack([main, min]);
let isDone = false;
function callback(err, stats) {
if (err) {
throw new Error(err);
}
gutil.log(stats.toString({ colors: true }));
if (!isDone) {
isDone = true;
done();
}
}
if (config.watch) {
compiler.watch({}, callback);
} else {
compiler.run(callback);
}
}
function jekyll() {
let cmd = 'jekyll serve --watch --config _config.yml,_config_dev.yml';
return gulp.src('_config.yml', { read: false })
.pipe(shell([cmd]));
}
function setWatching(done) {
config.watch = true;
gulp.watch('_scss/*.scss', css);
done();
}
function css() {
return gulp.src([
'./_scss/gallery.scss',
'./_scss/shuffle-styles.scss',
'./_scss/style.scss',
])
.pipe(sass())
.pipe(gulp.dest('./css/'));
}
// function test() {
// return gulp.src('test/specs.js')
// .pipe(jasmine());
// }
// gulp.task(test);
gulp.task('scripts', compile);
gulp.task('set-watching', setWatching);
gulp.task(css);
gulp.task(jekyll);
gulp.task('watch', gulp.series(
'set-watching',
gulp.parallel('css', 'scripts'),
'jekyll'
));
gulp.task('default', gulp.series('scripts'));