-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.babel.js
112 lines (86 loc) · 2.11 KB
/
gulpfile.babel.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import gulp from 'gulp';
import gutil from 'gulp-util';
import del from 'del';
import size from 'gulp-size';
//SCSS//
import scss from 'gulp-sass';
import cleancss from 'gulp-clean-css';
//LOCAL SERVE//
import webserver from 'gulp-webserver';
const PATHS = {
DIST: 'dist',
TEST: 'serve',
SCSSDIR: 'src/**',
MAINSCSS: 'src/main.scss',
INDEXHTML: 'test/**',
};
let scssbuild = ()=>{
return gulp.src(PATHS.MAINSCSS)
.pipe(scss({ style: 'compressed' }))
.pipe(cleancss({keepSpecialComments: 0}))
.pipe(size())
.pipe(gulp.dest(PATHS.DIST));
};
scssbuild.description = 'processes scss';
gulp.task(scssbuild);
let scsstest = ()=>{
return gulp.src(PATHS.MAINSCSS)
.pipe(scss({ style: 'compressed' }))
.pipe(cleancss({keepSpecialComments: 0}))
.pipe(size())
.pipe(gulp.dest(PATHS.TEST));
};
scsstest.description = 'test scss';
gulp.task(scsstest);
let htmltest = ()=>{
return gulp.src(PATHS.INDEXHTML)
.pipe(gulp.dest(PATHS.TEST));
};
htmltest.description = 'transfers html';
gulp.task(htmltest);
let watchtest = ()=>{
gulp.watch(PATHS.SCSSDIR, (cb)=>{gulp.series('scsstest')(); cb();})
gulp.watch(PATHS.INDEXHTML, (cb)=>{gulp.series('htmltest')(); cb();});
};
watchtest.description = 'watches css';
gulp.task(watchtest);
let clean = ()=>{
return del([PATHS.DIST]);
};
clean.description = 'cleans dist';
gulp.task(clean);
let cleantest = ()=>{
return del([PATHS.TEST]);
};
cleantest.description = 'cleans test';
gulp.task(cleantest);
let serve = (cb)=>{
return gulp.src(PATHS.TEST)
.pipe(webserver({
livereload: true,
port: 3030,
fallback: 'index.html'
}));
};
serve.description = 'serves ./serve on localhost:3030';
gulp.task(serve);
let build = ()=>{
return gulp.series(
'clean',
'scssbuild'
)();
};
build.description = 'builds scss';
gulp.task(build);
let buildtest = ()=>{
return gulp.series(
'cleantest',
gulp.parallel('scsstest', 'htmltest'),
'serve',
'watchtest'
)();
};
build.description = 'builds test app';
gulp.task(buildtest);
gulp.task('default', gulp.series('build'));
gulp.task('test', gulp.series('buildtest'));