57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
const { src, dest, parallel, series, watch } = require('gulp');
|
|
const autoprefixer = require('gulp-autoprefixer');
|
|
const minify = require('gulp-minify');
|
|
const cleanCss = require('gulp-clean-css');
|
|
const rename = require('gulp-rename');
|
|
const fs = require('fs-extra');
|
|
const htmlMin = require('gulp-htmlmin');
|
|
const sass = require('gulp-sass');
|
|
/**
|
|
* Process HTML files.
|
|
*/
|
|
function html() {
|
|
return src('./src/html/component.html')
|
|
.pipe(htmlMin({ collapseWhitespace: true }))
|
|
.pipe(rename('./src/html/component-min.html'))
|
|
.pipe(dest('./'));
|
|
}
|
|
|
|
/**
|
|
* Process CSS file.
|
|
*/
|
|
function css() {
|
|
return src('./src/scss/component.scss')
|
|
.pipe(sass())
|
|
.pipe(autoprefixer())
|
|
.pipe(cleanCss())
|
|
.pipe(rename('./src/css/component-min.css'))
|
|
.pipe(dest('./'));
|
|
}
|
|
|
|
/**
|
|
* Process the JavaScript library file.
|
|
*/
|
|
function js() {
|
|
packageJson = fs.readJsonSync('./package.json');
|
|
|
|
return src('./src/js/mailymaily.js').pipe(minify({ noSource: true })).pipe(dest('dist'));
|
|
}
|
|
|
|
/**
|
|
* The all seeing eye...
|
|
*/
|
|
function watchFiles() {
|
|
watch('./src/html/component.html', html);
|
|
watch('./src/scss/component.scss', css);
|
|
watch([ './src/js/mailymaily.js', './package.json' ]);
|
|
}
|
|
|
|
const build = series(parallel(html, css), js);
|
|
const watching = series(build, watchFiles);
|
|
//-----
|
|
exports.html = html;
|
|
exports.css = css;
|
|
exports.js = js;
|
|
exports.watch = watching;
|
|
exports.default = build;
|