-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
53 lines (46 loc) · 1.36 KB
/
gulpfile.js
File metadata and controls
53 lines (46 loc) · 1.36 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
var gulp = require("gulp");
const del = require('del');
var ts = require("gulp-typescript");
var merge = require("merge2");
var tslint = require("gulp-tslint");
var shell = require('gulp-shell');
const uglify = require("gulp-uglify-es").default;
gulp.task("lint", () =>
gulp.src("./src/**/*.ts")
.pipe(tslint({
formatter: "verbose"
}))
.pipe(tslint.report())
.on("error", () => {
console.log("lint failed");
process.exit(1);
})
);
gulp.task("clean:dist", () => del(["dist/**/*"]));
const tsProject = ts.createProject("tsconfig.json", {
declaration: true
});
gulp.task("build", gulp.series("lint", "clean:dist", () => {
let hasErrors = false;
const tsResult = gulp.src("./src/**/*.ts")
.pipe(tsProject())
.on("error", () => hasErrors = true)
.on("finish", () => {
if (hasErrors) {
console.log("build failed");
process.exit(1);
}
});
return merge([
tsResult.dts.pipe(gulp.dest("dist")),
tsResult.js
.pipe(uglify())
.pipe(gulp.dest("dist"))
]);
}));
gulp.task("test", gulp.series("build", () => {
return gulp.src('./test').pipe(shell('npm test'));
}));
gulp.task("release", gulp.series("build", () => {
return gulp.src('./').pipe(shell('npm pack'));
}));