forked from vik-13/back-to-home
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
72 lines (61 loc) · 1.67 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
72
const config = require('./gulp.config')();
const { series, parallel, src, dest, watch } = require('gulp');
const del = require('del');
const terser = require('gulp-terser');
const concat = require('gulp-concat');
const zip = require('gulp-zip');
const size = require('gulp-size');
const browserSync = require('browser-sync').create();
function clean() {
return del(config.release.index);
}
function compile() {
return parallel(compileIndex, compileScripts);
}
function compileIndex() {
return src(config.sources.index).pipe(dest(config.release.index));
}
function compileScripts() {
return src(config.sources.scripts)
.pipe(concat('app.js'))
.pipe(terser({
compress: {
booleans_as_integers: true
},
toplevel: true
}))
.pipe(dest(config.release.scripts));
}
function compileZip() {
return src(config.release.index + '/**/*')
.pipe(zip('back-to-home.zip'))
.pipe(dest('./'))
.pipe(size({pretty: false}));
}
function reload(done) {
browserSync.reload();
done();
}
function serve() {
browserSync.init({
server: {
baseDir: config.release.index,
middleware: function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
next();
}
}
});
watch([
config.sources.index,
config.sources.scripts
], series(compile(), compileZip, reload));
}
exports.clean = clean;
exports.compile = compile();
exports.compileIndex = compileIndex;
exports.compileScripts = compileScripts;
exports.build = series(clean, compile(), compileZip);
exports.zip = compileZip;
exports.serve = series(clean, compile(), compileZip, serve);
exports.default = series(clean, compile(), compileZip);