-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.mjs
66 lines (63 loc) · 1.83 KB
/
gulpfile.mjs
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
import gulp from "gulp";
import ts from "gulp-typescript";
import { deleteAsync } from "del";
import uglify from "gulp-uglify";
import replace from "gulp-replace";
import fs from "fs";
const mjsProject = ts.createProject("tsconfig.json");
const cjsProject = ts.createProject("tsconfig-cjs.json");
gulp.task("clean", function () {
return deleteAsync(["./dist", "./tmp", "./src/gen"]);
});
gulp.task("compress", function () {
return gulp
.src("dist/**/*.js", { sourcemaps: true })
.pipe(uglify())
.pipe(
gulp.dest("dist", {
sourcemaps: ".",
})
);
});
gulp.task("transpile-mjs", function () {
return gulp
.src(["src/**/*.ts", "generated/**/*.ts"], { sourcemaps: true })
.pipe(replace(/from "([.\/]+(\w+\/)*\w+)";/g, 'from "$1.js";'))
.pipe(mjsProject())
.pipe(
gulp.dest("dist/mjs/", {
sourcemaps: ".",
})
);
});
gulp.task("transpile-cjs", function () {
return gulp
.src(["src/**/*.ts", "generated/**/*.ts"], { sourcemaps: true })
.pipe(replace(/from "([.\/]+(\w+\/)*\w+)";/g, 'from "$1.js";'))
.pipe(cjsProject())
.pipe(gulp.dest("dist/cjs/", { sourcemaps: "." }));
});
gulp.task("writePackageJsons", function (callback) {
fs.writeFile("./dist/cjs/package.json", '{ "type": "commonjs" }', callback);
fs.writeFile("./dist/mjs/package.json", '{ "type": "module" }', callback);
});
gulp.task("copyDTS", function () {
return gulp
.src(["./dist/mjs/**/*.d.ts", "./dist/mjs/**/*.d.ts.map"])
.pipe(gulp.dest("./dist/"));
});
gulp.task("deleteDuplicateDTS", function () {
return deleteAsync(["./dist/mjs/**/*.d.ts*", "./dist/cjs/**/*.d.ts*"]);
});
gulp.task(
"build",
gulp.series(
"transpile-cjs",
"transpile-mjs",
"copyDTS",
"deleteDuplicateDTS",
//"compress",
"writePackageJsons"
)
);
gulp.task("default", gulp.series("build"));