-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
114 lines (91 loc) · 2.02 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
var path = require('path'),
gulp = require('gulp'),
gutil = require('gulp-util'),
webpack = require('webpack'),
del = require('del'),
karma = require('karma'),
runSequence = require('run-sequence'),
config = require('./webpack.config');
var dgeni;
dgeni = (function ( ) {
var pkg;
return function ( ) {
if(!pkg) {
pkg = {
Dgeni: require('dgeni')
};
}
return pkg;
};
})();
function handleCompilerRun ( err, stats ) {
if(err) {
gutil.log(new gutil.PluginError('webpack', err));
} else {
gutil.log(stats.toString({
colors: gutil.colors.supportsColor,
chunks: false
}));
}
}
function getUnitTestFiles ( ) {
return [ './test/index.js' ];
}
function clean ( done ) {
//del.sync('./dist', { read: false });
done();
}
function webpackTask ( done ) {
var compiler = webpack(config);
compiler.run(function ( err, stats ) {
handleCompilerRun(err, stats);
done();
});
}
function docs ( done ) {
var inst,
Dgeni = dgeni().Dgeni;
gutil.log('generating docs');
del.sync('./docs/partials/api');
inst = new Dgeni([require('./docs/dgeni-conf')]);
inst.generate()
.then(function ( result ) {
gutil.log('generated ' + result.length + ' pages');
})
.finally(function ( ) {
done();
});
}
function build ( done ) {
return runSequence('clean', 'webpack', done);
}
function defaults ( ) {
var karmaServer =
new karma.Server({
configFile: path.join(__dirname, 'karma.conf.js'),
files: getUnitTestFiles(),
autoWatch: true,
singleRun: false
});
karmaServer.start();
webpack(config)
.watch({}, function ( err, stats ) {
handleCompilerRun(err, stats);
});
gulp.watch('docs/templates/**/*.html', docs);
}
function test ( done ) {
var server =
new karma.Server({
configFile: path.join(__dirname, 'karma.conf.js'),
files: getUnitTestFiles(),
autoWatch: false,
singleRun: true
});
server.start(done);
}
gulp.task('build', build);
gulp.task('clean', clean);
gulp.task('default', defaults);
gulp.task('webpack', webpackTask);
gulp.task('test', test);