UNPKG

3.61 kBJavaScriptView Raw
1const 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
14module.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 // boba-extended.min.css
23 // Color helpers, Extended color helpers, Components have color variations
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 // Builds the documentation; for development purposes
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 // boba-lite.min.css
73 // No color helpers, No extended-color helpers, components have no color variations
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 // boba.min.css
100 // Color helpers, Components have color variations, But no extended color helpers
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};