import gulp from 'gulp';
// css
import autoprefixer from 'autoprefixer';
import postcss from 'gulp-postcss';
import stylelint from 'stylelint';
// html
import htmlmin from 'gulp-htmlmin';
// images
import imagemin from 'gulp-imagemin';
// js
import babel from 'gulp-babel';
import eslint from 'gulp-eslint';
// utilities
import browserSync from 'browser-sync';
import del from 'del';
import rename from 'gulp-rename';
const paths = {
html: {
src: 'src/*.html',
dest: 'dist/'
},
images: {
src: 'src/img/*',
dest: 'dist/img/'
},
scripts: {
src: 'src/js/*.js',
dest: 'dist/js/'
},
styles: {
src: 'src/css/*.css',
dest: 'dist/css/'
}
};
const clean = () => del([ 'dist/*' ]);
export { clean };
export function html() {
return gulp.src(paths.html.src, {since: gulp.lastRun('html')})
.pipe(htmlmin())
.pipe(gulp.dest(paths.html.dest));
}
export function images() {
return gulp.src(paths.images.src, {since: gulp.lastRun('images')})
.pipe(imagemin({optimizationLevel: 5}))
.pipe(gulp.dest(paths.images.dest));
}
export function scripts() {
return gulp.src(paths.scripts.src, {since: gulp.lastRun('scripts')})
.pipe(babel())
.pipe(rename({
basename: 'main',
suffix: '.min'
}))
.pipe(gulp.dest(paths.scripts.dest));
}
export function styles() {
return gulp.src(paths.styles.src, {since: gulp.lastRun('styles')})
.pipe(rename({
basename: 'main',
suffix: '.min'
}))
.pipe(gulp.dest(paths.styles.dest));
}
export function watch() {
gulp.watch(paths.html.src, html);
gulp.watch(paths.images.src, images);
gulp.watch(paths.scripts.src, scripts);
gulp.watch(paths.styles.src, styles);
}
const build = gulp.series(clean, gulp.parallel(html, images, scripts, styles));
export { build };
export default build;