const { src, dest, series } = require('gulp'); const autoprefixer = require('gulp-autoprefixer'); const minify = require('gulp-minify'); const cleanCSS = require('gulp-clean-css'); const fs = require('fs'); const del = require('del'); const rename = require('gulp-rename'); const htmlMin = require('gulp-htmlmin'); const sass = require('gulp-sass'); const replace = require('gulp-replace'); // function html() { return src('./src/component.html') .pipe(htmlMin({ collapseWhitespace: true })) .pipe(rename('./src/component.min.html')) .pipe(dest('./')); } function css() { return src('./src/scss/component.scss') .pipe(sass()) .pipe(autoprefixer()) .pipe(cleanCSS()) .pipe(rename('./src/css/component.min.css')) .pipe(dest('./')); } function js() { const css = fs.readFileSync('./src/css/component.min.css'); const html = fs.readFileSync('./src/component.min.html'); return src('./src/mailymaily.js') .pipe(replace(/___css_inserter___/g, css)) .pipe(replace(/___html_inserter___/g, html)) .pipe(minify({ noSource: true })) .pipe(rename('mailymaily.min.js')) .pipe(dest('./dist')); } const clean = () => del([ './src/component.min.html', './src/css/' ]); const prebuild = () => del([ './dist/' ]); exports.default = series(prebuild, html, css, js, clean);