-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
99 lines (87 loc) · 2.7 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
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
const gulp = require("gulp");
const useref = require("gulp-useref");
const webserver = require("gulp-webserver");
const https = require("https");
const http = require("http");
const filesExist = require("files-exist");
const uglify = require("gulp-uglify");
const hashsrc = require("gulp-hash-src");
var host = "localhost";
var port = 8081;
var isHttps = true;
function clean() {
return import("del").then((del) => {
return del.deleteAsync(['dist']);
});
}
/*function vendor() {
return gulp.src(filesExist("node_modules/jquery/dist/jquery.min.js"))
.pipe(gulp.dest("dist/js/vendor/jquery"));
}*/
function vendorV10(){
return gulp.src([/*"node_modules/jquery/dist/jquery.min.js",*/ "src/js/weavy-ui/common.js"])
.pipe(gulp.dest("dist/js/vendor10"));
}
function bundle() {
return gulp.src("src/index.html")
.pipe(useref())
.pipe(gulp.dest("dist"));
}
function bundleV10() {
return gulp.src("src/index10.html")
.pipe(useref())
.pipe(gulp.dest("dist"));
}
function minify() {
return gulp.src("dist/js/*.js").
pipe(uglify()).
pipe(gulp.dest("dist/js"));
}
function cachebust() {
return gulp.src("dist/*.html")
.pipe(hashsrc({ build_dir: "dist", src_path: "js", exts: [".js"], query_name: "h" }))
.pipe(hashsrc({ build_dir: "dist", src_path: "css", exts: [".css"], query_name: "h" }))
.pipe(gulp.dest("dist"));
};
function serve() {
var stream = gulp.src("dist")
.pipe(webserver({
host: host,
port: port,
livereload: true,
directoryListing: false,
open: true,
https: isHttps,
middleware: function (req, res, next) {
if (/_kill_\/?/.test(req.url)) {
res.end();
stream.emit("kill");
}
next();
}
})
)
return stream;
}
function shutdown(cb) {
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
if (isHttps) {
return https.request({
hostname: host,
port: port,
path: "/_kill_",
method: "GET",
requestCert: false,
rejectUnauthorized: false
}).on("close", cb).end();
} else {
return http.request("http://" + host + ":" + port.toString() + "/_kill_").on("close", cb).end();
}
}
function watch() {
return gulp.watch("src/**/*.*", gulp.series(clean, bundle, bundleV10, minify, vendorV10, cachebust));
}
exports.default = gulp.series(clean, bundle, bundleV10, minify, vendorV10, cachebust, watch);
exports.serve = gulp.parallel(exports.default, serve);
exports.shutdown = shutdown;
exports.clean = clean;