-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
46 lines (36 loc) · 1005 Bytes
/
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
const { task, src, dest, parallel, series } = require("gulp");
const fs = require("fs");
const ts = require("gulp-typescript");
const package = "package";
const project = ts.createProject("tsconfig.json");
const code_dist = project.config.compilerOptions.outDir;
const attached = ["LICENSE", "README.md"];
function cleanDir(name, cb) {
fs.rmdir(name, { recursive: true, force: true }, cb);
}
function cleanCodeDist(cb) {
cleanDir(code_dist, cb);
}
function compile() {
return project.src().pipe(project()).pipe(dest(code_dist));
}
function copyConfig() {
return src("package.json").pipe(dest(code_dist));
}
task("build", series(cleanCodeDist, compile, copyConfig));
function cleanPackage(cb) {
cleanDir(package, cb);
}
function dumpLibrary() {
return src(`${code_dist}/**/*`).pipe(dest(package));
}
function fillPackage() {
return src(attached).pipe(dest(package));
}
task(
"pack",
series(
cleanPackage,
parallel(series(task("build"), dumpLibrary), fillPackage)
)
);