-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgulpfile.js
59 lines (50 loc) · 1.33 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
'use strict';
let gulp = require('gulp');
let config = {
paths: {
libFolder: 'lib',
sourceMatch: [
'src/**/*.ts',
'typings/tsd.d.ts'
],
testMatch: [
'lib/**/*.test.js'
]
}
}
gulp.task('build', () => {
let ts = require('gulp-typescript');
let plumber = require('gulp-plumber');
let merge = require('merge2');
let lint = require('gulp-tslint');
let tsConfig = require('./tsconfig.json');
let paths = config.paths;
let errorCount = 0;
let allStreams = [];
let tsProject = ts.createProject(tsConfig.compilerOptions);
let gutil = require('gulp-util');
let sourceStream = gulp.src(paths.sourceMatch);
sourceStream
.pipe(lint({
configuration: require('./tslint.json')
}))
.pipe(lint.report('full', {
emitError: false
}));
let tsResult = sourceStream
.pipe(plumber({
errorHandler: function(error) {
errorCount++;
}
}))
.pipe(ts(tsProject, undefined, ts.reporter.longReporter()));
allStreams.push(tsResult.js.pipe(gulp.dest(paths.libFolder)));
allStreams.push(tsResult.dts.pipe(gulp.dest(paths.libFolder)));
return merge(allStreams);
});
gulp.task('test', ['build'], () => {
let mocha = require('gulp-mocha');
return gulp.src(config.paths.testMatch, { read: false })
.pipe(mocha());
});
gulp.task('default', ['build']);