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 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/html/component.html') .pipe(htmlMin({ collapseWhitespace: true })) .pipe(rename('./src/html/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/html/component-min.html'); return ( src('./src/js/mailymaily.js') .pipe(replace(/___css_inserter___/g, css)) .pipe(replace(/___html_inserter___/g, html)) // .pipe(minify({ noSource: true })) .pipe(dest('./dist')) ); } function clean() { return del([ './src/html/component-min.html', './src/css/' ]); } exports.default = series(html, css, js, clean);