-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
executable file
·68 lines (59 loc) · 1.28 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
const { parallel, series, watch, src, dest } = require('gulp');
/* package */
const gulp = require('gulp');
const sass = require('gulp-sass')(require('sass'));
const plumber = require('gulp-plumber');
const notify = require('gulp-notify');
// postcss
const postcss = require('gulp-postcss');
const mqpacker = require('css-mqpacker');
const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');
const plugin = [
mqpacker(),
autoprefixer({}),
cssnano({ autoprefixer: false })
];
const paths = {
root: '.',
styles: {
watch: 'src/scss/*',
entry: {
style: {
src: 'src/scss/style.scss',
dest: '.',
map: '.'
}
}
}
};
const sassCompress = (file) => {
return src(file.src, { sourcemaps: true })
.pipe(
plumber({
errorHandler: notify.onError({
title: 'Gulp',
message: file.src + 'Error: <%= error.message %>',
sound: 'Tink'
})
})
)
.pipe(
sass({ outputStyle: 'expanded' })
)
.pipe(
postcss(plugin)
)
.pipe(gulp.dest(file.dest, { sourcemaps: file.map }));
}
function sassCompress_style() {
return sassCompress(paths.styles.entry.style);
}
function watchFiles() {
return watch(paths.styles.watch, series(sassCompress_style));
};
exports.watch = watch;
exports.default = series(
sassCompress_style,
watchFiles
);