/
gulpFile.js
59 lines (50 loc) · 1.43 KB
/
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
47
48
49
50
51
52
53
54
55
56
57
58
59
var os = require('os');
var Path = require('path');
var fs = require('fs');
var gulp = require("gulp"),
ts = require("gulp-typescript"),
merge = require('merge2'),
fse = require('fs-extra'),
sourcemaps = require('gulp-sourcemaps'),
tslint = require("gulp-tslint");
gulp.task('default', ['compile-ts']);
gulp.task('tslint', function () {
return gulp.src('./src/**/*.ts')
.pipe(tslint({
formatter: "prose"
}))
.pipe(tslint.report())
.on("error", function () {
process.exit(1);
});;
});
// -----------------------------------
// Compilation
// -----------------------------------
gulp.task("compile-ts", ['tslint', 'clean'], function () {
var tsProject = ts.createProject(
'./tsconfig.json', {
typescript: require('typescript') // must be a project package dependency
});
var tsResult = gulp.src([
"./src/**/*.ts"
])
.pipe(sourcemaps.init())
.pipe(tsProject())
.once("error", function () {
this.once("finish", () => process.exit(1));
});
return merge([
tsResult.dts
.pipe(gulp.dest('dist')),
tsResult.js
.pipe(sourcemaps.write('.', {
includeContent: false,
sourceRoot: "../src/"
}))
.pipe(gulp.dest('dist'))
]);
});
gulp.task('clean', function (done) {
fse.remove('dist', done);
});