-
Notifications
You must be signed in to change notification settings - Fork 18
/
gulpfile.js
129 lines (89 loc) · 3.88 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*jshint undef:true */
var gulp = require('gulp');
var taskListing = require('gulp-task-listing');
var config = require('./config');
//Define variables for reloading of the browser using browser sync
var browserSync = require('browser-sync');
var reload = browserSync.reload;
//Add a list of all tasks in this gulpfile
gulp.task('help', taskListing);
gulp.task('default', ['help']);
//Function passes on all arguments to a separate component
function getTask(task) {
var argArray = [].slice.call(arguments);
argArray[0] = gulp; //Replace first element with a gulp reference
return require('./tasks/' + task).apply(this, argArray);
}
/*
Tasks for the local version of SLACjs
*/
gulp.task('lint', getTask('lint'));
gulp.task('clean', getTask('clean'));
gulp.task('test', ['lint']); //Used by Travis
gulp.task('build', ['lint', 'build-js', 'build-vendor', 'build-polyfill', 'build-html', 'build-styles']);
gulp.task('build-html', getTask('move', config.dir.src.html, config.dir.dist.public));
gulp.task('build-js', getTask(
'transpile', config.entries.local, config.dir.dist.scripts, (config.env == 'development'))
);
gulp.task('build-styles', getTask('styles'));
gulp.task('build-vendor', getTask('vendor', config.dir.dist.vendor));
gulp.task('build-polyfill', getTask('polyfill', config.dir.dist.scripts));
gulp.task('mobile', ['lint', 'mobile-vendor', 'mobile-build-js', 'mobile-polyfill', 'mobile-resources']);
/*
Tasks for the replay version of SLACjs
*/
gulp.task('build-js-replay', getTask(
'transpile', config.entries.replay, config.dir.dist.scripts, (config.env == 'development'))
);
gulp.task('build-html-replay', getTask('move', config.dir.src.replayHtml, config.dir.dist.public));
gulp.task('build-replay', ['lint', 'build-js-replay', 'build-vendor', 'build-polyfill', 'build-html-replay', 'build-styles', 'move-replay-data']);
gulp.task('move-replay-data', getTask('move', config.dir.src.replayData, config.dir.dist.replayData));
/*
Mobile build tasks
*/
gulp.task('mobile-build-js', getTask(
'transpile', config.entries.mobile, config.dir.mobile.scripts, false
));
gulp.task('mobile-clean', getTask('mobile-clean'));
gulp.task('mobile-resources', getTask('mobile-resources'));
gulp.task('mobile-setup', ['mobile-resources'], getTask('cordova-setup'));
gulp.task('mobile-vendor', getTask('vendor', config.dir.mobile.vendor));
gulp.task('mobile-polyfill', getTask('polyfill', config.dir.mobile.vendor));
/*
Tasks for reloading the browser using browser sync
*/
gulp.task('reload-styles', ['build-styles'], browserSync.reload);
gulp.task('reload-scripts', ['lint', 'build-js'], browserSync.reload);
gulp.task('reload-scripts-replay', ['lint', 'build-js-replay'], browserSync.reload);
gulp.task('reload-index', ['build-html'], browserSync.reload);
gulp.task('reload-index-replay', ['build-html-replay'], browserSync.reload);
// Main task for serving the non-mobile local version of SlacJS
gulp.task('serve', ['build'], function() {
// Watch .css files
gulp.watch(config.dir.src.styles, ['reload-styles']);
// Watch .js files
gulp.watch(config.dir.src.scripts, ['reload-scripts']);
gulp.watch(config.dir.src.tests, ['reload-scripts']);
gulp.watch(config.dir.src.html, ['reload-index']);
browserSync({
server: './dist'
});
});
// Main task for serving the replay local version of SlacJS
gulp.task('serve-replay', ['build-replay'], function() {
// Watch .css files
gulp.watch(config.dir.src.styles, ['reload-styles']);
// Watch .js files
gulp.watch(config.dir.src.scripts, ['reload-scripts-replay']);
gulp.watch(config.dir.src.replayHtml, ['reload-index-replay']);
browserSync({
server: './dist'
});
});
// Main task for serving the mobile version of SlacJS
gulp.task('serve-mobile', ['mobile'], function() {
// Watch .css files and other resources
gulp.watch(config.dir.src.mobile, ['mobile-resources']);
// Watch .js files
gulp.watch(config.dir.src.scripts, ['lint', 'mobile-build-js']);
});