-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
71 lines (61 loc) · 1.66 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Config
const config = {
source: 'assets/sass',
dest: 'assets/css'
};
// Modules
const gulp = require('gulp');
const sass = require('gulp-sass');
const sassglob = require('gulp-sass-glob');
const minifycss = require('gulp-cssnano');
const notify = require('gulp-notify');
const plumber = require('gulp-plumber');
const autoprefixer = require('gulp-autoprefixer');
const postcss = require('gulp-postcss');
const postcssLogical = require('postcss-logical');
/**
* Default Task that runs when you type gulp in the console
*/
const defaultTask = function(done) {
gulp.series('compileSass', 'watch');
done();
};
/**
* Compile SASS
*
* Compiles your SASS files in to one stylesheet
*/
const compileSass = function() {
// Load SASS Files
return (
gulp
.src(`${config.source}/style.scss`)
// Compile SASS
.pipe(sassglob())
.pipe(sass().on('error', sass.logError))
.pipe(plumber())
// Autoprefix and Minify
.pipe(autoprefixer({ cascade: false }))
.pipe(postcss([postcssLogical()]))
.pipe(minifycss())
// Save it and update the browser
.pipe(gulp.dest(config.dest))
.pipe(notify({ message: 'Styles task complete' }))
);
};
function watch(done) {
// Watch .scss files
gulp.watch(
[
`${config.source}/*.scss`,
`${config.source}/**/*.scss`,
`${config.source}/**/**/*.scss`
],
compileSass
);
done();
}
const watchAndSync = gulp.parallel(watch);
exports.default = defaultTask;
exports.compileSass = compileSass;
exports.watch = watchAndSync;