Gogh/gulpfile.js

63 lines
1.4 KiB
JavaScript

/* global $, fetch, console */
/* eslint no-undef: "error", semi: 2 */
'use strict';
const {
src,
dest,
parallel,
series,
watch
} = require('gulp');
const htmlmin = require('gulp-htmlmin');
const inlinesource = require('gulp-inline-source');
const rename = require('gulp-rename');
const browserSync = require('browser-sync').create();
const sass = require('gulp-sass');
function sassCompile () {
return src('./gh-pages/sass/**/main.scss')
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
.pipe(rename('main.min.css'))
.pipe(dest('./gh-pages/css'));
}
function minify () {
return src('./gh-pages/*.src.html')
.pipe(inlinesource())
.pipe(htmlmin({
collapseWhitespace: true
}))
.pipe(rename('index.html'))
.pipe(dest('./gh-pages/'));
}
function serve () {
browserSync.init({
port: 8890,
reloadDelay: 500,
ui: false,
open: true,
server: {
baseDir: './',
directory: true
}
});
}
function reload (done) {
browserSync.reload();
done();
}
function watchFiles () {
watch(['./gh-pages/**/*.html', '!./gh-pages/index.html'], series(sassCompile, minify, reload));
watch(['./gh-pages/js/**/*.js'], series(sassCompile, minify, reload));
watch(['./gh-pages/sass/**/*.scss'], series(sassCompile, minify, reload));
}
exports.default = parallel(serve, watchFiles);
exports.dev = parallel(serve, watchFiles);