11'use strict'
22
33const connect = require ( 'gulp-connect' )
4- const path = require ( 'path' )
5- const gulp = require ( 'gulp' )
64const del = require ( 'del' )
5+ const gulp = require ( 'gulp' )
6+ const path = require ( 'path' )
77
88const build = require ( './tasks/build' )
99const buildPreview = require ( './tasks/build-preview' )
@@ -26,48 +26,58 @@ const jsFiles = [
2626 path . join ( srcDir , '{helpers,js}/**/*.js' )
2727]
2828
29- gulp . task ( 'clean' , function ( ) {
30- return del ( [ './public/**' , './build/**' ] )
31- } )
32-
29+ // lint css files
3330gulp . task ( 'lint:css' , ( ) => lintCss ( `${ srcDir } /css/**/*.css` ) )
34- gulp . task ( 'lint:js' , ( ) => lintJs ( jsFiles ) )
35- gulp . task ( 'lint' , gulp . parallel ( 'lint:css' , 'lint:js' ) )
3631
37- gulp . task ( 'bundle' , ( ) => pack ( destDir , buildDir , bundleName ) )
32+ // lint js files
33+ gulp . task ( 'lint:js' , ( ) => lintJs ( jsFiles ) )
3834
35+ // properly format defined js files
36+ // note that this task must be run via 'npx gulp format',
37+ // because any changes need to be committed and merged
3938gulp . task ( 'format' , ( ) => format ( jsFiles ) )
4039
40+ // build the bundle, collects all files and folders
4141gulp . task ( 'build' , ( ) => build ( srcDir , destDir ) )
4242
43- gulp . task (
44- 'build:preview' ,
45- gulp . series ( 'build' , ( ) =>
46- buildPreview (
47- srcDir ,
48- destDir ,
49- previewSiteSrcDir ,
50- previewSiteDestDir ,
51- connect . reload
52- )
53- )
54- )
55-
56- gulp . task (
57- 'preview' ,
58- gulp . series ( 'build:preview' , ( ) =>
59- preview ( previewSiteDestDir , {
60- host : '0.0.0.0' ,
61- port : 5252 ,
62- livereload : process . env . LIVERELOAD === 'true' ,
63- watch : {
64- src : [ srcDir , previewSiteSrcDir ] ,
65- onChange : ( ) => gulp . start ( 'build:preview' )
66- }
67- } )
43+ // pack the created bundle to a zip file
44+ gulp . task ( 'pack' , ( ) => pack ( destDir , buildDir , bundleName ) )
45+
46+ // clean up target directories
47+ gulp . task ( 'clean' , function ( ) {
48+ return del ( [ `./${ previewSiteDestDir } /**` , `./${ buildDir } /**` ] )
49+ } )
50+
51+ // build the preview
52+ gulp . task ( 'build:preview' , async ( done ) => {
53+ await buildPreview (
54+ srcDir ,
55+ destDir ,
56+ previewSiteSrcDir ,
57+ previewSiteDestDir ,
58+ connect . reload
6859 )
69- )
60+ done ( )
61+ } )
62+
63+ // serve the built preview
64+ gulp . task ( 'serve:site' , async ( done ) => {
65+ await preview ( previewSiteDestDir , {
66+ host : '0.0.0.0' ,
67+ port : 5252 ,
68+ livereload : process . env . LIVERELOAD === 'true' ,
69+ watch : {
70+ src : [ srcDir , previewSiteSrcDir ] ,
71+ onChange : ( ) => gulp . start ( 'build:preview' )
72+ }
73+ } )
74+ done ( )
75+ } )
76+
77+ // tasks available via npm run
78+
79+ gulp . task ( 'lint' , gulp . parallel ( 'lint:css' , 'lint:js' ) )
7080
71- gulp . task ( 'pack ' , gulp . series ( 'clean' , 'lint' , 'build' , 'bundle ' ) )
81+ gulp . task ( 'bundle ' , gulp . series ( 'clean' , 'lint' , 'build' , 'pack ' ) )
7282
73- gulp . task ( 'default ' , gulp . series ( 'build' ) )
83+ gulp . task ( 'preview ' , gulp . series ( 'bundle' , ' build:preview' , 'serve:site ') )
0 commit comments