-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.mjs
More file actions
59 lines (51 loc) · 1.32 KB
/
gulpfile.mjs
File metadata and controls
59 lines (51 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Load plugins
import { deleteSync } from "del";
import gulp from "gulp";
import imagemin from "gulp-imagemin";
import newer from "gulp-newer";
import plumber from "gulp-plumber";
import * as dartSass from "sass";
import gulpSass from "gulp-sass";
import autoprefixer from "gulp-autoprefixer";
const sass = gulpSass(dartSass);
// Clean assets
gulp.task("clean", async () => deleteSync(["./dist/"]));
// Optimize Images
gulp.task("images", async () => {
return gulp
.src("./src/images/**/*")
.pipe(newer("./dist/images/"))
.pipe(imagemin())
.pipe(gulp.dest("./dist/images/"));
});
// CSS task
gulp.task("css", async () => {
return gulp
.src("./src/scss/main.scss")
.pipe(plumber())
.pipe(sass({ outputStyle: "expanded" }))
.pipe(
autoprefixer({
browsers: ["last 2 versions"],
cascade: false,
})
)
.pipe(gulp.dest("./dist/"));
});
// HTML
gulp.task("html", async () => {
return gulp.src("./src/index.html").pipe(gulp.dest("./dist/"));
});
// Watch files
gulp.task("watch", async () => {
return gulp.watch(
["./src/scss/**/*", "./src/images/**/*", "./src/index.html"],
gulp.parallel(["css", "images", "html"])
);
});
// define complex tasks
export const build = gulp.series(
["clean"],
gulp.parallel(["css", "images", "html"])
);
export default build;