-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.babel.js
62 lines (51 loc) · 1.25 KB
/
gulpfile.babel.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
60
61
62
'use strict';
import gulp from 'gulp';
import gulpLoad from 'gulp-load-plugins';
import seq from 'run-sequence';
const plugins = gulpLoad();
const basePath = __dirname;
const dirs = {
src: basePath + '/src',
build: basePath + '/build',
test: basePath + '/test'
};
const glob = {
src: dirs.src + '/**/*.js',
build: dirs.build + '/**/*.js',
test: dirs.test + '/**/*.js'
};
const onError = err => {
console.error(err);
process.exit(1);
};
gulp.task('pre-clean', () => {
return gulp.src(glob.build)
.pipe(plugins.clean())
.once('error', onError);
});
gulp.task('compile', () => {
return gulp.src(glob.src)
.pipe(plugins.babel({
presets: ['es2015']
})).pipe(gulp.dest(dirs.build))
.once('error', onError);
});
gulp.task('jshint', () => {
return gulp.src(glob.src)
.pipe(plugins.jshint())
.pipe(plugins.jshint.reporter('jshint-stylish'))
.once('error', onError);
});
gulp.task('test', () => {
return gulp.src(glob.test, {
grep: /^_/i,
read: false
}).pipe(plugins.mocha({
reporter: 'spec'
})).once('error', onError);
});
gulp.task('default', () => {
gulp.watch(glob.src, ['build']);
gulp.watch(glob.test, ['test']);
});
gulp.task('build', cbk => seq('jshint', 'test', 'pre-clean', 'compile', cbk));