forked from marmelab/EventDrops
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpFile.js
More file actions
73 lines (59 loc) · 1.69 KB
/
gulpFile.js
File metadata and controls
73 lines (59 loc) · 1.69 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'use strict';
var browserify = require('browserify');
var watchify = require('watchify');
var gulp = require('gulp');
var mocha = require('gulp-mocha');
var uglify = require('gulp-uglify');
var streamify = require('gulp-streamify');
var karma = require('karma').server;
var source = require('vinyl-source-stream');
function bundle(watching) {
var bundler, rebundle;
bundler = browserify('./lib/main.js', {
basedir: __dirname,
debug: watching,
cache: {}, // required for watchify
packageCache: {}, // required for watchify
fullPaths: watching // required to be true only for watchify
});
if (watching) {
bundler = watchify(bundler);
}
rebundle = function () {
var stream = bundler.bundle();
stream.on('error', function (error) {
console.error(error);
});
stream = stream.pipe(source('eventDrops.js'));
try {
if (!watching) {
stream.pipe(streamify(uglify()));
}
stream.pipe(gulp.dest('./src/'));
} catch (e) {
console.log(e);
}
};
bundler.on('update', rebundle);
return rebundle();
}
gulp.task('browserify', function () {
return bundle(false);
});
gulp.task('watch', function () {
return bundle(true);
});
gulp.task('mocha-test', function () {
return gulp.src('./test/mocha/*.js', {read: true})
.pipe(mocha({
reporter: 'dot',
ui: 'bdd',
}));
});
gulp.task('karma-test', function (done) {
karma.start({
configFile: __dirname + '/test/karma/karma.conf.js',
singleRun: true
}, done);
});
gulp.task('test', ['mocha-test', 'karma-test']);