1
- var gulp = require ( 'gulp' ) ,
2
- sass = require ( 'gulp-sass' ) ,
3
- fileinclude = require ( 'gulp-file-include' ) ,
4
- htmlmin = require ( 'gulp-htmlmin' ) ,
5
- uglify = require ( 'gulp-uglify' ) ,
6
- concat = require ( 'gulp-concat' ) ,
7
- csso = require ( 'gulp-csso' ) ,
8
- clean = require ( 'gulp-rimraf' ) ,
9
- runSequence = require ( 'run-sequence' ) ;
10
-
11
- gulp . task ( 'clean' , [ ] , function ( ) {
12
- console . log ( "Clean all files in build folder" ) ;
13
-
14
- return gulp . src ( "dist/*" , { read : false } ) . pipe ( clean ( ) ) ;
15
- } ) ;
16
-
17
- gulp . task ( 'sass' , function ( ) {
1
+ "use strict" ;
2
+
3
+ const del = require ( "del" ) ;
4
+ const eslint = require ( "gulp-eslint" ) ;
5
+ const gulp = require ( 'gulp' ) ;
6
+ const sass = require ( 'gulp-sass' ) ;
7
+ const fileinclude = require ( 'gulp-file-include' ) ;
8
+ const htmlmin = require ( 'gulp-htmlmin' ) ;
9
+ const uglify = require ( 'gulp-uglify' ) ;
10
+ const concat = require ( 'gulp-concat' ) ;
11
+ const csso = require ( 'gulp-csso' ) ;
12
+
13
+ function clean ( ) {
14
+ console . log ( "Delete build folder" ) ;
15
+
16
+ return del ( [ "./dist/" ] ) ;
17
+ }
18
+
19
+ function sassTask ( ) {
18
20
console . log ( "Sass task run" ) ;
19
21
20
- gulp . src ( 'src/scss/*.scss' )
22
+ return gulp . src ( 'src/scss/*.scss' )
21
23
. pipe ( sass ( { outputStyle : 'compressed' } ) )
22
24
. pipe ( csso ( ) )
23
25
. pipe ( concat ( 'style.min.css' ) )
24
26
. pipe ( gulp . dest ( 'dist/css/' ) ) ;
25
- } ) ;
27
+ }
26
28
27
- gulp . task ( 'css' , function ( ) {
28
- console . log ( "Css task run" ) ;
29
+ function styles ( ) {
30
+ console . log ( "Styles task run" ) ;
29
31
30
- gulp . src ( [
32
+ return gulp . src ( [
31
33
'node_modules/bootstrap/dist/css/bootstrap.css' ,
32
34
'node_modules/@fortawesome/fontawesome-free/css/all.css' ,
33
35
'src/css/**/*.css'
34
36
] )
35
37
. pipe ( csso ( ) )
36
38
. pipe ( concat ( 'lib.min.css' ) )
37
39
. pipe ( gulp . dest ( 'dist/css' ) ) ;
38
- } ) ;
40
+ }
39
41
40
- gulp . task ( 'js' , function ( ) {
41
- console . log ( "JS task run" ) ;
42
+ function scriptsLint ( ) {
43
+ return gulp
44
+ . src ( [ "dist/js/**/*" , "./gulpfile.js" ] )
45
+ . pipe ( plumber ( ) )
46
+ . pipe ( eslint ( ) )
47
+ . pipe ( eslint . format ( ) )
48
+ . pipe ( eslint . failAfterError ( ) ) ;
49
+ }
42
50
43
- gulp . src ( [
51
+ function scripts ( ) {
52
+ console . log ( "Scripts task run" ) ;
53
+
54
+ return gulp . src ( [
44
55
'node_modules/jquery/dist/jquery.js' ,
45
56
'node_modules/bootstrap/dist/js/bootstrap.js' ,
46
57
'src/js/**/*.js'
47
58
] )
48
59
. pipe ( uglify ( ) )
49
60
. pipe ( concat ( 'main.min.js' ) )
50
61
. pipe ( gulp . dest ( 'dist/js' ) ) ;
51
- } ) ;
62
+ }
52
63
53
- gulp . task ( 'images' , function ( ) {
64
+ function images ( ) {
54
65
console . log ( "Images task run" ) ;
55
66
56
- gulp . src ( [
67
+ return gulp . src ( [
57
68
'src/images/**/*'
58
69
] )
59
70
. pipe ( gulp . dest ( 'dist/images' ) ) ;
60
- } ) ;
71
+ }
61
72
62
- gulp . task ( 'html' , function ( ) {
73
+ function html ( ) {
63
74
console . log ( "HTML task run" ) ;
64
75
65
- gulp . src ( [ 'src/*.html' ] )
76
+ return gulp . src ( [ 'src/*.html' ] )
66
77
. pipe ( fileinclude ( {
67
78
prefix : '@@' ,
68
79
basepath : 'src/partials'
@@ -72,42 +83,28 @@ gulp.task('html', function () {
72
83
removeComments : true
73
84
} ) )
74
85
. pipe ( gulp . dest ( 'dist' ) ) ;
75
- } ) ;
76
-
77
- gulp . task ( 'default' , function ( ) {
78
- runSequence ( 'clean' , 'sass' , 'css' , 'js' , 'images' , 'html' , function ( ) {
79
- console . log ( 'Run task done' ) ;
80
- // done();
81
- } ) ;
82
- } ) ;
83
-
84
- gulp . task ( 'watch' , function ( ) {
85
- gulp . run ( 'default' ) ;
86
-
87
- gulp . watch ( 'src/scss/**/*.scss' , function ( event ) {
88
- console . log ( 'File ' + event . path + ' was ' + event . type + ', running tasks...' ) ;
89
- gulp . run ( 'sass' ) ;
90
- } ) ;
91
-
92
- gulp . watch ( 'src/css/**/*.css' , function ( event ) {
93
- console . log ( 'File ' + event . path + ' was ' + event . type + ', running tasks...' ) ;
94
- gulp . run ( 'css' ) ;
95
- } ) ;
96
-
97
- gulp . watch ( 'src/js/**/*.js' , function ( event ) {
98
- console . log ( 'File ' + event . path + ' was ' + event . type + ', running tasks...' ) ;
99
- gulp . run ( 'js' ) ;
100
- } ) ;
101
-
102
- gulp . watch ( 'src/images/**/*' , function ( event ) {
103
- console . log ( 'File ' + event . path + ' was ' + event . type + ', running tasks...' ) ;
104
- gulp . run ( 'images' ) ;
105
- } ) ;
106
-
107
- gulp . watch ( 'src/**/*.html' , function ( event ) {
108
- console . log ( 'File ' + event . path + ' was ' + event . type + ', running tasks...' ) ;
109
- gulp . run ( 'html' ) ;
110
- } ) ;
111
- } ) ;
112
-
113
-
86
+ }
87
+
88
+ function watch ( ) {
89
+ gulp . watch ( 'src/scss/**/*.scss' , sassTask ) ;
90
+ gulp . watch ( 'src/css/**/*.css' , styles ) ;
91
+ gulp . watch ( 'src/js/**/*.js' , scripts ) ;
92
+ gulp . watch ( 'src/images/**/*' , images ) ;
93
+ gulp . watch ( 'src/**/*.html' , html ) ;
94
+ }
95
+
96
+ // define complex tasks
97
+ const js = gulp . series ( scriptsLint , scripts ) ;
98
+ const build = gulp . series ( clean , gulp . parallel ( styles , scripts , sassTask , images , html ) ) ;
99
+
100
+ // export tasks
101
+ exports . clean = clean ;
102
+ exports . sassTask = sassTask ;
103
+ exports . styles = styles ;
104
+ exports . js = js ;
105
+ exports . images = images ;
106
+ exports . html = html ;
107
+ exports . watch = watch ;
108
+ exports . build = build ;
109
+
110
+ exports . default = build ;
0 commit comments