@@ -6,6 +6,8 @@ const sass = require('gulp-sass');
6
6
const sassGlob = require ( 'gulp-sass-glob' ) ;
7
7
const groupMediaQueries = require ( 'gulp-group-css-media-queries' ) ;
8
8
const cleanCSS = require ( 'gulp-cleancss' ) ;
9
+ const postcss = require ( 'gulp-postcss' ) ;
10
+ const autoprefixer = require ( 'autoprefixer' ) ;
9
11
10
12
const concat = require ( 'gulp-concat' ) ;
11
13
const uglify = require ( 'gulp-uglify' ) ;
@@ -18,6 +20,9 @@ const del = require('del');
18
20
const plumber = require ( 'gulp-plumber' ) ;
19
21
const browserSync = require ( 'browser-sync' ) . create ( ) ;
20
22
23
+ const svgstore = require ( 'gulp-svgstore' ) ;
24
+ const svgmin = require ( 'gulp-svgmin' ) ;
25
+
21
26
const paths = {
22
27
src : './src/' , // paths.src
23
28
build : './build/' // paths.build
@@ -30,12 +35,31 @@ function styles() {
30
35
. pipe ( sassGlob ( ) )
31
36
. pipe ( sass ( ) ) // { outputStyle: 'compressed' }
32
37
. pipe ( groupMediaQueries ( ) )
38
+ . pipe ( postcss ( [
39
+ autoprefixer ( { browsers : [ 'last 9 version' ] } ) ,
40
+ ] ) )
33
41
. pipe ( cleanCSS ( ) )
34
42
. pipe ( rename ( { suffix : ".min" } ) )
35
43
. pipe ( sourcemaps . write ( '/' ) )
36
44
. pipe ( gulp . dest ( paths . build + 'css/' ) )
37
45
}
38
46
47
+ function svgSprite ( ) {
48
+ return gulp . src ( paths . src + 'svg/*.svg' )
49
+ . pipe ( svgmin ( function ( file ) {
50
+ return {
51
+ plugins : [ {
52
+ cleanupIDs : {
53
+ minify : true
54
+ }
55
+ } ]
56
+ }
57
+ } ) )
58
+ . pipe ( svgstore ( { inlineSvg : true } ) )
59
+ . pipe ( rename ( 'sprite-svg.svg' ) )
60
+ . pipe ( gulp . dest ( paths . build + 'img/' ) ) ;
61
+ }
62
+
39
63
function scripts ( ) {
40
64
return gulp . src ( paths . src + 'js/*.js' )
41
65
. pipe ( plumber ( ) )
@@ -76,19 +100,20 @@ function serve() {
76
100
exports . styles = styles ;
77
101
exports . scripts = scripts ;
78
102
exports . htmls = htmls ;
103
+ exports . svgSprite = svgSprite ;
79
104
exports . clean = clean ;
80
105
exports . watch = watch ;
81
106
82
107
gulp . task ( 'build' , gulp . series (
83
108
clean ,
84
- styles ,
85
- scripts ,
86
- htmls
87
- // gulp.parallel(styles, scripts, htmls)
109
+ // styles,
110
+ // scripts,
111
+ // htmls
112
+ gulp . parallel ( styles , svgSprite , scripts , htmls )
88
113
) ) ;
89
114
90
115
gulp . task ( 'default' , gulp . series (
91
116
clean ,
92
- gulp . parallel ( styles , scripts , htmls ) ,
117
+ gulp . parallel ( styles , svgSprite , scripts , htmls ) ,
93
118
gulp . parallel ( watch , serve )
94
119
) ) ;
0 commit comments