import gulp from 'gulp';
import babel from 'gulp-babel';
import rename from 'gulp-rename';
import htmlmin from 'gulp-htmlmin';
import imagemin from 'gulp-imagemin';
import uglify from 'gulp-uglify';
import del from 'del';
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/'
}
};
/*
* For small tasks you can use arrow functions and export
*/
const clean = () => del([ 'dist/*' ]);
export { clean };
/*
* You can still declare named functions and export them as tasks
*/
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(uglify())
.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 a default task
*/
export default build;