1 | const gulp = require('gulp'),
|
2 | rename = require('gulp-rename'),
|
3 | plumber = require('gulp-plumber'),
|
4 | minifyCSS = require('gulp-cssnano'),
|
5 | sass = require('gulp-sass'),
|
6 | autoprefixer = require('gulp-autoprefixer'),
|
7 | uglify = require('gulp-uglify'),
|
8 | sourcemaps = require('gulp-sourcemaps'),
|
9 | gulpif = require('gulp-if'),
|
10 | replace = require('gulp-replace'),
|
11 | browserSync = require('browser-sync');
|
12 |
|
13 |
|
14 | module.exports = (gulp, config) => {
|
15 |
|
16 | const isDist = config.flags.isDist;
|
17 | const docs = isDist ? true : config.flags.docs;
|
18 | const minify = isDist ? true : config.flags.minify;
|
19 | const buildAll = isDist ? true : config.flags.buildAll;
|
20 |
|
21 | return () => {
|
22 |
|
23 |
|
24 | gulp.src(config.src.sass)
|
25 | .pipe(gulpif(!isDist, sourcemaps.init()))
|
26 | .pipe(plumber({
|
27 | errorHandler: err => {
|
28 | console.error(err);
|
29 | }
|
30 | }))
|
31 | .pipe(sass())
|
32 | .pipe(rename(config.dist.min_css_extended))
|
33 | .pipe(autoprefixer( {
|
34 | remove: false,
|
35 | browsers: [
|
36 | 'last 2 versions',
|
37 | '> 5%'
|
38 | ]
|
39 | }
|
40 | ))
|
41 | .pipe(gulpif(minify, minifyCSS()))
|
42 | .pipe(gulpif(!isDist, sourcemaps.write()))
|
43 | .pipe(gulp.dest(config.dist.css))
|
44 | .pipe(browserSync.reload({stream: true}))
|
45 |
|
46 |
|
47 | if (docs) {
|
48 | gulp.src(config.src.sass_docs)
|
49 | .pipe(gulpif(!isDist, sourcemaps.init()))
|
50 | .pipe(plumber({
|
51 | errorHandler: err => {
|
52 | console.error(err);
|
53 | }
|
54 | }))
|
55 | .pipe(sass())
|
56 | .pipe(rename(config.dist.min_css_docs))
|
57 | .pipe(autoprefixer( {
|
58 | remove: false,
|
59 | browsers: [
|
60 | 'last 2 versions',
|
61 | '> 5%'
|
62 | ]
|
63 | }
|
64 | ))
|
65 | .pipe(gulpif(minify, minifyCSS()))
|
66 | .pipe(gulpif(!isDist, sourcemaps.write()))
|
67 | .pipe(gulp.dest(config.dist.css))
|
68 | .pipe(browserSync.reload({stream: true}))
|
69 | }
|
70 |
|
71 | if (buildAll) {
|
72 |
|
73 |
|
74 | gulp.src(config.src.sass)
|
75 | .pipe(replace('$include-color-palette: true', '$include-color-palette: false'))
|
76 | .pipe(replace('$include-color-helpers: true', '$include-color-helpers: false'))
|
77 | .pipe(replace('$include-color-helpers-extended: true', '$include-color-helpers-extended: false'))
|
78 | .pipe(gulpif(!isDist, sourcemaps.init()))
|
79 | .pipe(plumber({
|
80 | errorHandler: err => {
|
81 | console.error(err);
|
82 | }
|
83 | }))
|
84 | .pipe(sass())
|
85 | .pipe(rename(config.dist.min_css_lite))
|
86 | .pipe(autoprefixer( {
|
87 | remove: false,
|
88 | browsers: [
|
89 | 'last 2 versions',
|
90 | '> 5%'
|
91 | ]
|
92 | }
|
93 | ))
|
94 | .pipe(gulpif(minify, minifyCSS()))
|
95 | .pipe(gulpif(!isDist, sourcemaps.write()))
|
96 | .pipe(gulp.dest(config.dist.css))
|
97 | .pipe(browserSync.reload({stream: true}))
|
98 |
|
99 |
|
100 |
|
101 | gulp.src(config.src.sass)
|
102 | .pipe(replace('$include-color-helpers-extended: true', '$include-color-helpers-extended: false'))
|
103 | .pipe(gulpif(!isDist, sourcemaps.init()))
|
104 | .pipe(plumber({
|
105 | errorHandler: err => {
|
106 | console.error(err);
|
107 | }
|
108 | }))
|
109 | .pipe(sass())
|
110 | .pipe(rename(config.dist.min_css))
|
111 | .pipe(autoprefixer( {
|
112 | remove: false,
|
113 | browsers: [
|
114 | 'last 2 versions',
|
115 | '> 5%'
|
116 | ]
|
117 | }
|
118 | ))
|
119 | .pipe(gulpif(minify, minifyCSS()))
|
120 | .pipe(gulpif(!isDist, sourcemaps.write()))
|
121 | .pipe(gulp.dest(config.dist.css))
|
122 | .pipe(browserSync.reload({stream: true}))
|
123 | }
|
124 | };
|
125 | };
|