-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
85 lines (72 loc) · 1.97 KB
/
gulpfile.js
File metadata and controls
85 lines (72 loc) · 1.97 KB
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
var gulp = require("gulp");
var browserify = require("browserify");
var source = require("vinyl-source-stream");
var watchify = require("watchify");
var tsify = require("tsify");
var uglify = require("gulp-uglify");
var sourcemaps = require("gulp-sourcemaps");
var buffer = require("vinyl-buffer");
var gutil = require("gulp-util");
var obfuscate = require("gulp-javascript-obfuscator");
var paths = {
pages: ["src/*.html"],
styles: ["src/*.css"],
assets: ["src/assets/**/*"],
other: [
"src/*.png",
"src/*.xml",
"src/*.ico",
"src/*.svg",
"src/*.webmanifest"
]
};
browserified = () =>
browserify({
basedir: ".",
debug: true,
entries: ["src/Game.ts"],
cache: {},
packageCache: {}
}).plugin(tsify);
bundledUglified = x =>
x
.bundle()
.pipe(source("bundle.js"))
.pipe(buffer())
.pipe(uglify())
.pipe(
obfuscate({
selfDefending: true
})
)
.pipe(gulp.dest("dist"));
quickBundled = x =>
x
.bundle()
.pipe(source("bundle.js"))
.pipe(gulp.dest("dist"));
watchedBundle = () => {
quickBundled(watchedBrowserify);
};
gulp.task("bundle", () => bundledUglified(browserified()));
gulp.task("copy-html", () => gulp.src(paths.pages).pipe(gulp.dest("dist")));
gulp.task("copy-css", () => gulp.src(paths.styles).pipe(gulp.dest("dist")));
gulp.task("copy-assets", () =>
gulp.src(paths.assets).pipe(gulp.dest("dist/assets"))
);
gulp.task("copy-other", () => gulp.src(paths.other).pipe(gulp.dest("dist")));
gulp.task(
"copy-all",
gulp.parallel("copy-html", "copy-css", "copy-assets", "copy-other")
);
gulp.task(
"default",
gulp.parallel("copy-all", "bundle")
);
gulp.task(
"watch",
gulp.parallel("copy-all", watchedBundle)
);
var watchedBrowserify = watchify(browserified());
watchedBrowserify.on("update", watchedBundle);
watchedBrowserify.on("log", gutil.log);