1
- /*global require */
2
- "use strict" ;
1
+ /*global require, exports */
2
+ /*jshint esversion: 6 */
3
3
4
4
// include plug-ins
5
- var gulp = require ( 'gulp' ) ;
6
- var del = require ( 'del' ) ;
7
- var sourcemaps = require ( 'gulp-sourcemaps' ) ;
8
- var rename = require ( 'gulp-rename' ) ;
9
- var concat = require ( 'gulp-concat' ) ;
10
- var less = require ( 'gulp-less' ) ;
11
- var autoprefixer = require ( 'gulp-autoprefixer' ) ;
12
- var cleanCss = require ( 'gulp-clean-css' ) ;
13
- var uglify = require ( 'gulp-uglify' ) ;
14
-
15
- var webRootPath = "." ;
16
- var bowerDirPath = "lib" ;
17
- var styleDirPath = webRootPath + '/styles' ;
18
- var scriptDirPath = webRootPath + '/scripts' ;
5
+ const { src , dest , series , parallel , watch } = require ( 'gulp' ) ;
6
+ const del = require ( 'del' ) ;
7
+ const sourcemaps = require ( 'gulp-sourcemaps' ) ;
8
+ const rename = require ( 'gulp-rename' ) ;
9
+ const concat = require ( 'gulp-concat' ) ;
10
+ const less = require ( 'gulp-less' ) ;
11
+ const autoprefixer = require ( 'gulp-autoprefixer' ) ;
12
+ const cleanCss = require ( 'gulp-clean-css' ) ;
13
+ const uglify = require ( 'gulp-uglify' ) ;
14
+
15
+ const webRootPath = "." ;
16
+ const bowerDirPath = "lib" ;
17
+ const styleDirPath = webRootPath + '/styles' ;
18
+ const scriptDirPath = webRootPath + '/scripts' ;
19
19
20
20
//#region Clean
21
21
//#region Clean builded assets
22
- gulp . task ( 'clean-builded-styles' , function ( ) {
23
- del . sync ( [ styleDirPath + '/build/*' ] ) ;
24
- } ) ;
22
+ function cleanBuildedStyles ( ) {
23
+ return del ( [ styleDirPath + '/build/*' ] ) ;
24
+ }
25
25
26
- gulp . task ( 'clean-builded-scripts' , function ( ) {
27
- del . sync ( [ scriptDirPath + '/build/*' ] ) ;
28
- } ) ;
26
+ function cleanBuildedScripts ( ) {
27
+ return del ( [ scriptDirPath + '/build/*' ] ) ;
28
+ }
29
29
30
- gulp . task ( 'clean-builded-assets' , [ 'clean-builded-styles' , 'clean-builded-scripts' ] , function ( ) { } ) ;
30
+ const cleanBuildedAssets = parallel ( cleanBuildedStyles , cleanBuildedScripts ) ;
31
31
//#endregion
32
32
//#endregion
33
33
34
34
//#region Build assets
35
35
//#region Build styles
36
- var autoprefixerOptions = {
37
- browsers : [ '> 1%' , 'last 3 versions' , 'Firefox ESR' , 'Opera 12.1' ] ,
36
+ const autoprefixerOptions = {
37
+ overrideBrowserslist : [ '> 1%' , 'last 3 versions' , 'Firefox ESR' , 'Opera 12.1' ] ,
38
38
cascade : true
39
39
} ;
40
- var cssCleanOptions = { keepSpecialComments : '*' } ;
41
- var cssRenameOptions = { extname : '.min.css' } ;
40
+ const cssCleanOptions = { specialComments : '*' } ;
41
+ const cssRenameOptions = { extname : '.min.css' } ;
42
42
43
- gulp . task ( 'build-common-styles' , function ( ) {
44
- return gulp
45
- . src ( [ styleDirPath + '/app.less' ] )
43
+ function buildCommonStyles ( ) {
44
+ return src ( [ styleDirPath + '/app.less' ] )
46
45
. pipe ( sourcemaps . init ( ) )
47
46
. pipe ( less ( {
48
47
relativeUrls : true ,
49
48
rootpath : '/styles/'
50
49
} ) )
51
50
. pipe ( autoprefixer ( autoprefixerOptions ) )
52
51
. pipe ( sourcemaps . write ( './' ) )
53
- . pipe ( gulp . dest ( styleDirPath + '/build' ) )
52
+ . pipe ( dest ( styleDirPath + '/build' ) )
54
53
. pipe ( sourcemaps . init ( { loadMaps : true } ) )
55
54
. pipe ( concat ( 'common-styles.css' ) )
56
55
. pipe ( cleanCss ( cssCleanOptions ) )
57
56
. pipe ( rename ( cssRenameOptions ) )
58
57
. pipe ( sourcemaps . write ( './' ) )
59
- . pipe ( gulp . dest ( styleDirPath + '/build' ) )
58
+ . pipe ( dest ( styleDirPath + '/build' ) )
60
59
;
61
- } ) ;
60
+ }
62
61
63
- gulp . task ( 'build-styles' , [ 'build-common-styles' ] , function ( ) { } ) ;
62
+ const buildStyles = buildCommonStyles ;
64
63
//#endregion
65
64
66
65
//#region Build scripts
67
- var jsConcatOptions = { newLine : ';' } ;
68
- var jsUglifyOptions = {
66
+ const jsConcatOptions = { newLine : ';' } ;
67
+ const jsUglifyOptions = {
69
68
output : { comments : / ^ ! / }
70
69
} ;
71
- var jsRenameOptions = { extname : '.min.js' } ;
70
+ const jsRenameOptions = { extname : '.min.js' } ;
72
71
73
- gulp . task ( 'build-modernizr-scripts' , function ( ) {
74
- return gulp
75
- . src ( [ bowerDirPath + '/modernizr/modernizr.js' ] )
72
+ function buildModernizrScripts ( ) {
73
+ return src ( [ bowerDirPath + '/modernizr/modernizr.js' ] )
76
74
. pipe ( sourcemaps . init ( ) )
77
75
. pipe ( uglify ( jsUglifyOptions ) )
78
76
. pipe ( rename ( jsRenameOptions ) )
79
77
. pipe ( sourcemaps . write ( './' ) )
80
- . pipe ( gulp . dest ( scriptDirPath + '/build' ) )
78
+ . pipe ( dest ( scriptDirPath + '/build' ) )
81
79
;
82
- } ) ;
80
+ }
83
81
84
- gulp . task ( 'build-common-scripts' , function ( ) {
85
- return gulp
86
- . src ( [ scriptDirPath + '/common.js' ] )
82
+ function buildCommonScripts ( ) {
83
+ return src ( [ scriptDirPath + '/common.js' ] )
87
84
. pipe ( sourcemaps . init ( { loadMaps : true } ) )
88
85
. pipe ( rename ( { basename : 'common-scripts' } ) )
89
86
. pipe ( uglify ( jsUglifyOptions ) )
90
87
. pipe ( rename ( jsRenameOptions ) )
91
88
. pipe ( sourcemaps . write ( './' ) )
92
- . pipe ( gulp . dest ( scriptDirPath + '/build' ) )
89
+ . pipe ( dest ( scriptDirPath + '/build' ) )
93
90
;
94
- } ) ;
91
+ }
95
92
96
- gulp . task ( 'build-evaluation-form-scripts' , function ( ) {
97
- return gulp
98
- . src ( [ bowerDirPath + '/jquery-validation/dist/jquery.validate.js' ,
93
+ function buildEvaluationFormScripts ( ) {
94
+ return src ( [ bowerDirPath + '/jquery-validation/dist/jquery.validate.js' ,
99
95
bowerDirPath + '/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js' ,
100
96
bowerDirPath + '/bootstrap/js/button.js' ,
101
97
scriptDirPath + '/evaluation-form.js' ] )
@@ -104,32 +100,32 @@ gulp.task('build-evaluation-form-scripts', function () {
104
100
. pipe ( uglify ( jsUglifyOptions ) )
105
101
. pipe ( rename ( jsRenameOptions ) )
106
102
. pipe ( sourcemaps . write ( './' ) )
107
- . pipe ( gulp . dest ( scriptDirPath + '/build' ) )
103
+ . pipe ( dest ( scriptDirPath + '/build' ) )
108
104
;
109
- } ) ;
105
+ }
110
106
111
- gulp . task ( 'build-scripts' , [ 'build-modernizr-scripts' , 'build-common-scripts' ,
112
- 'build-evaluation-form-scripts' ] , function ( ) { } ) ;
107
+ const buildScripts = parallel ( buildModernizrScripts , buildCommonScripts , buildEvaluationFormScripts ) ;
113
108
//#endregion
114
109
115
- gulp . task ( 'build-assets' , [ 'build-styles' , 'build-scripts' ] , function ( ) { } ) ;
110
+ const buildAssets = parallel ( buildStyles , buildScripts ) ;
116
111
//#endregion
117
112
118
113
//#region Watch assets
119
- gulp . task ( 'watch-styles' , function ( ) {
120
- return gulp . watch ( [ styleDirPath + '/**/*.{less,css}' , '!' + styleDirPath + '/build/**/*.*' ] ,
121
- [ 'build-styles' ] ) ;
122
- } ) ;
114
+ function watchStyles ( ) {
115
+ return watch ( [ styleDirPath + '/**/*.{less,css}' , '!' + styleDirPath + '/build/**/*.*' ] ,
116
+ buildStyles ) ;
117
+ }
123
118
124
- gulp . task ( 'watch-scripts' , function ( ) {
125
- return gulp . watch ( [ scriptDirPath + '/**/*.js' , '!' + scriptDirPath + '/build/**/*.*' ] ,
126
- [ 'build-scripts' ] ) ;
127
- } ) ;
119
+ function watchScripts ( ) {
120
+ return watch ( [ scriptDirPath + '/**/*.js' , '!' + scriptDirPath + '/build/**/*.*' ] ,
121
+ buildScripts ) ;
122
+ }
128
123
129
- gulp . task ( 'watch-assets' , [ 'watch-styles' , 'watch-scripts' ] ) ;
124
+ const watchAssets = parallel ( watchStyles , watchScripts ) ;
130
125
//#endregion
131
126
132
- //Set a default tasks
133
- gulp . task ( 'default' , [ 'clean-builded-assets' ] , function ( ) {
134
- return gulp . start ( 'build-assets' ) ;
135
- } ) ;
127
+ // Export tasks
128
+ exports . cleanBuildedAssets = cleanBuildedAssets ;
129
+ exports . buildAssets = buildAssets ;
130
+ exports . watchAssets = watchAssets ;
131
+ exports . default = series ( cleanBuildedAssets , buildAssets ) ;
0 commit comments