-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
124 lines (87 loc) · 2.39 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
//###[ IMPORTS ]########################################################################################################
const
gulp = require('gulp'),
sequence = require('run-sequence'),
rename = require('gulp-rename'),
sourcemaps = require('gulp-sourcemaps'),
uglify = require('gulp-uglify'),
connect = require('gulp-connect'),
shell = require('gulp-shell'),
st = require('st'),
ava = require('gulp-ava')
;
//###[ CONSTANTS ]######################################################################################################
const
BUILD_DEST = 'dist',
EXAMPLES_DEST = 'examples',
DOC_DEST = 'doc'
;
//###[ TASKS ]##########################################################################################################
gulp.task('js', function(){
return gulp.src(['./src/**/*.js'])
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(BUILD_DEST));
});
gulp.task('examples-lib', function(){
gulp.src(['./node_modules/jquery-v1/dist/jquery*.*'])
.pipe(gulp.dest(`${EXAMPLES_DEST}/lib/jquery-v1/`))
;
gulp.src(['./node_modules/jquery-v2/dist/jquery*.*'])
.pipe(gulp.dest(`${EXAMPLES_DEST}/lib/jquery-v2/`))
;
gulp.src(['./node_modules/jquery-v3/dist/jquery*.*'])
.pipe(gulp.dest(`${EXAMPLES_DEST}/lib/jquery-v3/`))
;
return gulp.src(['./src/**/*.js'])
.pipe(gulp.dest(`${EXAMPLES_DEST}/lib`))
;
});
gulp.task('watch', function(){
gulp.watch('./src/**/*.js', ['watch-build']);
});
gulp.task('server', function(){
connect.server({
host : '0.0.0.0',
root : EXAMPLES_DEST,
port : 8000,
middleware : function (connect, opt){
return [
function(req, res, next){
// treat POST request like GET during dev
req.method = 'GET';
return next();
},
st({
path : 'doc',
url : '/doc'
})
];
}
});
});
gulp.task('test', function(){
return gulp.src('test/core/*.js')
.pipe(ava({verbose : true}))
.on('error', function(){
process.exit(-1);
})
;
});
gulp.task('build', function(){
sequence('test', 'js', 'examples-lib');
});
// don't test every dev change, to test result manually test, build or restart serve
gulp.task('watch-build', function(){
sequence('js', 'examples-lib');
});
gulp.task('serve', ['build'], function(){
sequence('server', 'watch');
});
gulp.task('doc', shell.task([
'jsdoc -c jsdoc-conf.json'
]));
gulp.task('default', function(){
sequence('build', 'doc');
});