-
Notifications
You must be signed in to change notification settings - Fork 4
/
gulpfile.js
117 lines (82 loc) · 2.29 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
'use strict';
var gulp = require('gulp'),
lazypipe = require('lazypipe'),
jshintStylish = require('jshint-stylish'),
path = require('path'),
runSequence = require('run-sequence'),
gp = require('gulp-load-plugins')(),
gutil = gp.util,
log = gp.util.log;
var paths = {
// ## Source paths
src: {
js: ['src/**/*.js']
},
// ## Tests paths
test: ['test/**/*.js'],
// ## Production build dest paths
build: {
root: 'dist'
}
};
// ==================================================
// Reusable pipelines
// ==================================================
// # Scripts / JS
var lintJs = lazypipe()
.pipe(gp.plumber)
.pipe(gp.jshint)
.pipe(gp.jshint.reporter, jshintStylish);
var optimizeJs = lazypipe()
.pipe(gp.uglify)
.pipe(gp.rename, { suffix: '.min' })
.pipe(gp.size, { showFiles: true });
// ==================================================
// DEVELOPMENT TASKS
// ==================================================
// # Main dev tasks
// Just watch right away by default
gulp.task('default', function (cb) {
runSequence('watch', cb);
});
// # Dev watchdogs
gulp.task('watch', function () {
// Who let the dogs out? Aww, aw aw, aw :)
//
// _|\___
// ( o ``--__
// ( o O
// ___/\/\/\/
// /--
//
gp.watch({ name: 'JavaScript watchdog', glob: paths.src.js, emitOnGlob: false }, ['js']);
});
// # Dev sub-tasks
// ## Scripts / JS
// Perform dev JS task: lint
gulp.task('js', function () {
return gulp.src(paths.src.js)
.pipe(lintJs());
});
// ==================================================
// PRODUCTION BUILD TASKS
// ==================================================
// Build production js and place everything into `./dist` folder
gulp.task('build', function () {
return gulp.src(paths.src.js)
.pipe(lintJs())
.pipe(gulp.dest(paths.build.root))
.pipe(optimizeJs())
.pipe(gulp.dest(paths.build.root));
});
// ==================================================
// TEST TASKS
// ==================================================
gulp.task('test', function () {
});
gulp.task('test:unit', function () {
});
gulp.task('test:integration', function () {
});
gulp.task('test:e2e', function () {
});