-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
63 lines (55 loc) · 1.63 KB
/
gulpfile.js
File metadata and controls
63 lines (55 loc) · 1.63 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
const gulp = require("gulp");
const ts = require("gulp-typescript");
const del = require("del");
const sourcemaps = require("gulp-sourcemaps");
const runElectron = require("gulp-run-electron");
gulp.task("default", ["launch"]);
gulp.task("dev", ["clean"], () => gulp.run(["watch", "launch"]));
gulp.task("package", ["clean"], () => gulp.run(["static", "compile"]));
const PATHS = {
staticSrc: [
"package.json",
"index.html",
"app.css",
],
build: "build",
staticDest: "build",
vendorSrc: ["src/vendor/**/*.js"],
vendorDest: "build/vendor",
project: "tsconfig.json",
};
gulp.task("clean", () => {
return del("build");
});
gulp.task("static", ["static:assets", "static:vendor"]);
gulp.task("static:assets", () => {
return gulp.src(PATHS.staticSrc)
.pipe(gulp.dest(PATHS.staticDest));
});
gulp.task("static:vendor", () => {
return gulp.src(PATHS.vendorSrc)
.pipe(gulp.dest(PATHS.vendorDest));
});
gulp.task("watch", ["static", "compile"], () => {
gulp.watch(PATHS.staticSrc, ["static:assets"]);
gulp.watch(PATHS.vendorSrc, ["static:vendor"]);
gulp.watch("src/**/*", ["compile"]);
});
const tsOptions = {typescript: require("typescript")};
const tsProject = ts.createProject(PATHS.project, tsOptions);
gulp.task("compile", () => {
let sourceMapConfig = {
includeContent: false,
sourceRoot: "",
debug: true,
};
return tsProject.src()
.pipe(sourcemaps.init())
.pipe(tsProject()).js
.pipe(sourcemaps.write(".", sourceMapConfig))
.pipe(gulp.dest(PATHS.build));
});
gulp.task("launch", ["static", "compile"], () => {
return gulp.src(PATHS.build)
.pipe(runElectron([], {cwd: PATHS.build}));
});