@@ -7,10 +7,6 @@ import gulp from 'gulp';
7
7
// and attach them to the `plugins` object
8
8
import plugins from 'gulp-load-plugins' ;
9
9
10
- // Temporary solution until gulp 4
11
- // https://github.com/gulpjs/gulp/issues/355
12
- import runSequence from 'run-sequence' ;
13
-
14
10
import archiver from 'archiver' ;
15
11
import glob from 'glob' ;
16
12
import del from 'del' ;
@@ -20,19 +16,18 @@ import modernizr from 'modernizr';
20
16
import pkg from './package.json' ;
21
17
import modernizrConfig from './modernizr-config.json' ;
22
18
23
-
24
19
const dirs = pkg [ 'h5bp-configs' ] . directories ;
25
20
26
21
// ---------------------------------------------------------------------
27
22
// | Helper tasks |
28
23
// ---------------------------------------------------------------------
29
24
30
- gulp . task ( 'archive:create_archive_dir' , ( ) => {
25
+ gulp . task ( 'archive:create_archive_dir' , ( done ) => {
31
26
fs . mkdirSync ( path . resolve ( dirs . archive ) , '0755' ) ;
27
+ done ( ) ;
32
28
} ) ;
33
29
34
30
gulp . task ( 'archive:zip' , ( done ) => {
35
-
36
31
const archiveName = path . resolve ( dirs . archive , `${ pkg . name } _v${ pkg . version } .zip` ) ;
37
32
const zip = archiver ( 'zip' ) ;
38
33
const files = glob . sync ( '**/*.*' , {
@@ -49,7 +44,6 @@ gulp.task('archive:zip', (done) => {
49
44
output . on ( 'close' , done ) ;
50
45
51
46
files . forEach ( ( file ) => {
52
-
53
47
const filePath = path . resolve ( dirs . dist , file ) ;
54
48
55
49
// `zip.bulk` does not maintain the file
@@ -58,12 +52,11 @@ gulp.task('archive:zip', (done) => {
58
52
'name' : file ,
59
53
'mode' : fs . statSync ( filePath ) . mode
60
54
} ) ;
61
-
62
55
} ) ;
63
56
64
57
zip . pipe ( output ) ;
65
58
zip . finalize ( ) ;
66
-
59
+ done ( ) ;
67
60
} ) ;
68
61
69
62
gulp . task ( 'clean' , ( done ) => {
@@ -75,16 +68,6 @@ gulp.task('clean', (done) => {
75
68
} ) ;
76
69
} ) ;
77
70
78
- gulp . task ( 'copy' , [
79
- 'copy:.htaccess' ,
80
- 'copy:index.html' ,
81
- 'copy:jquery' ,
82
- 'copy:license' ,
83
- 'copy:main.css' ,
84
- 'copy:misc' ,
85
- 'copy:normalize'
86
- ] ) ;
87
-
88
71
gulp . task ( 'copy:.htaccess' , ( ) =>
89
72
gulp . src ( 'node_modules/apache-server-configs/dist/.htaccess' )
90
73
. pipe ( plugins ( ) . replace ( / # E r r o r D o c u m e n t / g, 'ErrorDocument' ) )
@@ -94,12 +77,12 @@ gulp.task('copy:.htaccess', () =>
94
77
gulp . task ( 'copy:index.html' , ( ) => {
95
78
const hash = ssri . fromData (
96
79
fs . readFileSync ( 'node_modules/jquery/dist/jquery.min.js' ) ,
97
- { algorithms : [ 'sha256' ] }
80
+ { algorithms : [ 'sha256' ] }
98
81
) ;
99
82
let version = pkg . devDependencies . jquery ;
100
83
let modernizrVersion = pkg . devDependencies . modernizr ;
101
84
102
- gulp . src ( `${ dirs . src } /index.html` )
85
+ return gulp . src ( `${ dirs . src } /index.html` )
103
86
. pipe ( plugins ( ) . replace ( / { { JQUERY_ V E R S I O N } } / g, version ) )
104
87
. pipe ( plugins ( ) . replace ( / { { MODERNIZR_ V E R S I O N } } / g, modernizrVersion ) )
105
88
. pipe ( plugins ( ) . replace ( / { { JQUERY_ S R I _ H A S H } } / g, hash . toString ( ) ) )
@@ -120,31 +103,26 @@ gulp.task('copy:license', () =>
120
103
gulp . task ( 'copy:main.css' , ( ) => {
121
104
const banner = `/*! HTML5 Boilerplate v${ pkg . version } | ${ pkg . license } License | ${ pkg . homepage } */\n\n` ;
122
105
123
- gulp . src ( ` node_modules/main.css/dist/main.css` )
106
+ return gulp . src ( ' node_modules/main.css/dist/main.css' )
124
107
. pipe ( plugins ( ) . header ( banner ) )
125
108
. pipe ( plugins ( ) . autoprefixer ( {
126
- browsers : [ 'last 2 versions' , 'ie >= 9' , '> 1%' ] ,
127
109
cascade : false
128
110
} ) )
129
111
. pipe ( gulp . dest ( `${ dirs . dist } /css` ) ) ;
130
112
} ) ;
131
113
132
114
gulp . task ( 'copy:misc' , ( ) =>
133
115
gulp . src ( [
134
-
135
116
// Copy all files
136
117
`${ dirs . src } /**/*` ,
137
118
138
119
// Exclude the following files
139
120
// (other tasks will handle the copying of these files)
140
121
`!${ dirs . src } /css/main.css` ,
141
122
`!${ dirs . src } /index.html`
142
-
143
123
] , {
144
-
145
124
// Include hidden files by default
146
125
dot : true
147
-
148
126
} ) . pipe ( gulp . dest ( dirs . dist ) )
149
127
) ;
150
128
@@ -153,42 +131,53 @@ gulp.task('copy:normalize', () =>
153
131
. pipe ( gulp . dest ( `${ dirs . dist } /css` ) )
154
132
) ;
155
133
156
- gulp . task ( 'modernizr' , ( done ) => {
157
-
134
+ gulp . task ( 'modernizr' , ( done ) => {
158
135
modernizr . build ( modernizrConfig , ( code ) => {
159
136
fs . writeFile ( `${ dirs . dist } /js/vendor/modernizr-${ pkg . devDependencies . modernizr } .min.js` , code , done ) ;
160
137
} ) ;
161
-
162
138
} ) ;
163
139
164
140
gulp . task ( 'lint:js' , ( ) =>
165
141
gulp . src ( [
166
- 'gulpfile.js' ,
167
142
`${ dirs . src } /js/*.js` ,
168
143
`${ dirs . test } /*.js`
169
144
] ) . pipe ( plugins ( ) . jscs ( ) )
170
145
. pipe ( plugins ( ) . eslint ( ) )
171
146
. pipe ( plugins ( ) . eslint . failOnError ( ) )
172
147
) ;
173
148
174
-
175
149
// ---------------------------------------------------------------------
176
150
// | Main tasks |
177
151
// ---------------------------------------------------------------------
152
+ gulp . task (
153
+ 'copy' ,
154
+ gulp . series (
155
+ 'copy:.htaccess' ,
156
+ 'copy:index.html' ,
157
+ 'copy:jquery' ,
158
+ 'copy:license' ,
159
+ 'copy:main.css' ,
160
+ 'copy:misc' ,
161
+ 'copy:normalize'
162
+ )
163
+ ) ;
164
+
165
+ gulp . task (
166
+ 'build' ,
167
+ gulp . series (
168
+ gulp . parallel ( 'clean' , 'lint:js' ) ,
169
+ 'copy' ,
170
+ 'modernizr'
171
+ )
172
+ ) ;
178
173
179
- gulp . task ( 'archive' , ( done ) => {
180
- runSequence (
174
+ gulp . task (
175
+ 'archive' ,
176
+ gulp . series (
181
177
'build' ,
182
178
'archive:create_archive_dir' ,
183
- 'archive:zip' ,
184
- done ) ;
185
- } ) ;
186
-
187
- gulp . task ( 'build' , ( done ) => {
188
- runSequence (
189
- [ 'clean' , 'lint:js' ] ,
190
- 'copy' , 'modernizr' ,
191
- done ) ;
192
- } ) ;
179
+ 'archive:zip'
180
+ )
181
+ ) ;
193
182
194
- gulp . task ( 'default' , [ 'build' ] ) ;
183
+ gulp . task ( 'default' , gulp . series ( 'build' ) ) ;
0 commit comments