1
- const gulp = require ( 'gulp' ) ;
2
- const sass = require ( 'gulp-sass' ) ;
3
- const shell = require ( 'gulp-shell' ) ;
4
- const serve = require ( 'gulp-serve' ) ;
5
- const clean = require ( 'gulp-clean' ) ;
1
+ const gulp = require ( 'gulp' ) ;
2
+ const sass = require ( 'gulp-sass' ) ;
3
+ const shell = require ( 'gulp-shell' ) ;
4
+ const serve = require ( 'gulp-serve' ) ;
5
+ const clean = require ( 'gulp-clean' ) ;
6
+ const responsive = require ( 'gulp-responsive' ) ;
6
7
7
8
const { buildSrc, buildDest } = require ( './paths' ) ;
8
9
10
+ // Make sure destination folder exists
9
11
gulp . task ( 'setup' , function ( ) {
10
12
return gulp . src ( '*.*' , { read : false } )
11
13
. pipe ( gulp . dest ( `./${ buildDest } ` ) ) ;
@@ -21,18 +23,59 @@ gulp.task('serve', serve({
21
23
port : 8000 ,
22
24
} ) ) ;
23
25
26
+ gulp . task ( 'svg' , function ( ) {
27
+ return gulp . src ( `${ buildSrc } /_assets/svg/*` )
28
+ . pipe ( gulp . dest ( `${ buildDest } /_assets/svg/` ) ) ;
29
+ } )
30
+
31
+ gulp . task ( 'images' , function ( ) {
32
+ return gulp . src ( `${ buildSrc } /_assets/img/**/*.{jpg,png}` )
33
+ . pipe ( responsive ( {
34
+ // Resize all JPG images to three different sizes: 200, 500, and 630 pixels
35
+ '**/*' : [ {
36
+ width : 320 ,
37
+ rename : { suffix : '-320px' } ,
38
+ } , {
39
+ width : 550 ,
40
+ rename : { suffix : '-550px' } ,
41
+ } , {
42
+ // Compress, strip metadata
43
+ } ] ,
44
+ } , {
45
+ quality : 80 ,
46
+ progressive : true ,
47
+ withMetadata : false ,
48
+ withoutEnlargement : true ,
49
+ errorOnUnusedImage : false ,
50
+ errorOnEnlargement : false
51
+ } ) )
52
+ . pipe ( gulp . dest ( `${ buildDest } /_assets/img` ) ) ;
53
+ } ) ;
54
+
24
55
gulp . task ( 'generate' , shell . task ( 'eleventy' ) ) ;
25
56
26
- gulp . task ( " scss" , function ( ) {
57
+ gulp . task ( ' scss' , function ( ) {
27
58
return gulp . src ( buildSrc + "/_assets/scss/main.scss" )
28
59
. pipe ( sass ( {
29
60
outputStyle : "compressed"
30
61
} ) . on ( 'error' , sass . logError ) )
31
- . pipe ( gulp . dest ( buildDest + " /_assets/css" ) )
62
+ . pipe ( gulp . dest ( ` ${ buildDest } /_assets/css` ) )
32
63
} ) ;
33
64
34
- gulp . task ( "watch" , function ( ) {
35
- gulp . watch ( buildSrc + "/**/*" , gulp . parallel ( 'build' ) )
65
+ gulp . task ( 'watch' , function ( ) {
66
+ gulp . watch ( `${ buildSrc } /11ty/**/*` , gulp . parallel ( 'generate' ) ) ;
67
+ gulp . watch ( `${ buildSrc } /_assets/img/**/*` , gulp . parallel ( 'images' ) ) ;
68
+ gulp . watch ( `${ buildSrc } /_assets/scss/**/*` , gulp . parallel ( 'scss' ) ) ;
69
+ gulp . watch ( `${ buildSrc } /_assets/svg/**/*` , gulp . parallel ( 'svg' ) ) ;
36
70
} ) ;
37
71
38
- gulp . task ( 'build' , gulp . series ( 'setup' , 'clean' , 'generate' , 'scss' ) )
72
+ gulp . task ( 'build' , gulp . series (
73
+ 'setup' ,
74
+ 'clean' ,
75
+ 'generate' ,
76
+ gulp . parallel (
77
+ 'images' ,
78
+ 'scss' ,
79
+ 'svg'
80
+ )
81
+ ) ) ;
0 commit comments