1- var glob = require ( 'glob' ) ;
2- var path = require ( 'path' ) ;
31
42var gulp = require ( 'gulp' ) ;
53var plugins = require ( 'gulp-load-plugins' ) ( ) ;
64
7- var utils = require ( './utils/utils' ) ;
8-
95/********************************************
106* Configs And Paths
117*********************************************/
128
139var config = require ( '../config/' ) ;
1410var paths = config . paths ;
1511
16-
1712/********************************************
1813* Load Build Tasks
1914*********************************************/
2015
21- var buildTasks = utils . loadTasks ( gulp , plugins , paths ) ;
16+ // Dynamic Tasks with Gulp 4
17+ // https://cobwwweb.com/dynamic-tasks-gulp-4
18+ // With Gulp 4, it's not so simple.
19+
20+ //var buildTasks = utils.loadTasks(gulp, plugins, paths);
21+ //gulp.task('build', buildTasks);
22+
23+ const app_assets = require ( './tasks/app-assets' ) . task ( gulp , plugins , paths ) ;
24+ const app_pages = require ( './tasks/app-pages' ) . task ( gulp , plugins , paths ) ;
25+ const app_scripts = require ( './tasks/app-scripts' ) . task ( gulp , plugins , paths ) ;
26+ const app_styles = require ( './tasks/app-styles' ) . task ( gulp , plugins , paths ) ;
27+ const app_themes = require ( './tasks/app-themes' ) . task ( gulp , plugins , paths ) ;
2228
23- gulp . task ( 'build' , buildTasks ) ;
29+ const vendor_assets = require ( './tasks/vendor-assets' ) . task ( gulp , plugins , paths ) ;
30+ const vendor_scripts = require ( './tasks/vendor-scripts' ) . task ( gulp , plugins , paths ) ;
31+ const vendor_styles = require ( './tasks/vendor-styles' ) . task ( gulp , plugins , paths ) ;
32+
33+ const clean = ( done ) => {
34+ // Error: Cannot delete files/directories outside the current
35+ // working directory. Can be overridden with the `force` option.
36+ return require ( 'del' ) ( [ config . destDir ] , { force : true } ) ;
37+ } ;
38+
39+ const build = gulp . parallel (
40+ gulp . parallel ( app_assets , app_scripts , app_pages , gulp . series ( app_styles , app_themes ) ) ,
41+ gulp . parallel ( vendor_assets , vendor_scripts , vendor_styles )
42+ ) ;
2443
2544/*********************************************
2645* Other Tasks
2746**********************************************/
2847
2948// Local server pointing on build folder
30- gulp . task ( 'connect' , function ( ) {
31- plugins . connect . server ( {
32- root : config . destDir ,
33- port : config . port || 3333 ,
34- livereload : true
35- } ) ;
36- } ) ;
37-
38-
39- // Rerun the task when a file changes
40- gulp . task ( 'watch' , function ( ) {
41- // When template changes recompile .html pages
42- plugins . watch ( paths . app . templates , function ( ) {
43- gulp . start ( 'app-pages' ) ;
44- } ) ;
45-
49+ const connect = ( ) => {
50+ return plugins . connect . server ( {
51+ root : config . destDir ,
52+ port : config . port || 3333 ,
53+ livereload : true
54+ } ) ;
55+ } ;
56+
57+ const watch = ( done ) => {
58+ // When template changes recompile .html pages
59+ gulp . watch ( paths . app . templates , app_pages ) ;
4660 // When context file changes recompile .html pages
47- plugins . watch ( config . srcDir + "/**/.context.js" , function ( ) {
48- gulp . start ( 'app-pages' ) ;
49- } ) ;
50-
61+ gulp . watch ( config . srcDir + "/**/.context.js" , app_pages ) ;
5162 // When script changes recompile scripts
52- plugins . watch ( paths . app . scripts , function ( ) {
53- gulp . start ( 'app-scripts' ) ;
54- } ) ;
55-
63+ gulp . watch ( paths . app . scripts , app_scripts ) ;
5664 // When style changes recompile styles
57- plugins . watch ( paths . app . styles , function ( ) {
58- gulp . start ( 'app-styles' ) ;
59- } ) ;
60-
65+ gulp . watch ( paths . app . styles , app_styles ) ;
6166 // When theme changes recompile themes
62- plugins . watch ( paths . app . themes , function ( ) {
63- gulp . start ( 'app-themes' ) ;
64- } ) ;
65- } ) ;
67+ gulp . watch ( paths . app . themes , app_themes ) ;
68+
69+ done ( ) ;
70+ } ;
6671
6772// Builds and deploys to github pages
68- gulp . task ( 'deploy' , [ ' build' ] , function ( ) {
69- return gulp . src ( '../dist/**/*' )
73+ const deploy = ( ) => gulp . series ( build , ( ) =>
74+ gulp . src ( '../dist/**/*' )
7075 . pipe ( plugins . ghPages ( {
7176 cacheDir : '../.deploy'
72- } ) ) ;
73- } ) ;
74-
77+ } ) )
78+ ) ;
7579
80+ module . exports . deploy = deploy ;
7681
7782/********************************************
7883* Main Tasks
7984*********************************************/
8085
81-
82- // // Run this task for development
83- gulp . task ( 'develop' , [
84- 'build' ,
85- 'watch' ,
86- 'connect'
87- ] ) ;
88-
89- gulp . task ( 'default' , [ 'develop' ] ) ;
86+ // Run this task for development
87+ module . exports . default = gulp . series ( clean , build , gulp . parallel ( watch , connect ) ) ;
0 commit comments