-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathgulpfile.js
More file actions
121 lines (102 loc) · 3 KB
/
Copy pathgulpfile.js
File metadata and controls
121 lines (102 loc) · 3 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
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
/**
* gulp [Task]
*
* Available Build Task(s)
* - clean
* - concat
* - minify
* - minify-css
* - build
*/
var gulp = require('gulp');
var help = require('gulp-help');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');
var del = require('del');
var noop = function () {};
//var usemin = require('gulp-usemin');
//var sourcemaps = require('gulp-sourcemaps');
/** gulp tasks */
help(gulp);
// Clean
gulp.task('clean', 'Cleans the build folder.', [], function (cb) {
"use strict";
del([
'build/**'
], cb);
}, {
aliases: ['c', 'C']
});
gulp.task("concat", 'Joins all the script files putting them in build folder.', [], function () {
"use strict";
gulp.src(['js/editable-listview.js', 'js/**/*.js'])
.pipe(concat('jqm.editable.listview.js'))
.pipe(gulp.dest('build/'));
}, {
aliases: ['j', 'J']
});
gulp.task("minify", 'Minifies all the script files.', [], function () {
"use strict";
gulp.src(['js/editable-listview.js', 'js/**/*.js'])
.pipe(concat('jqm.editable.listview.js'))
.pipe(rename('jqm.editable.listview.min.js'))
.pipe(uglify({
preserveComments: 'some'
}))
.pipe(gulp.dest('build/'));
}, {
aliases: ['m', 'M']
});
gulp.task("minify-css", 'Minifies the CSS stylesheets.', [], function () {
"use strict";
gulp.src('css/**/*.css')
.pipe(concat('jqm.editable.listview.min.css'))
.pipe(minifyCss({
noAdvanced: false
}))
.pipe(gulp.dest('build'));
}, {
aliases: ['s', 'S']
});
gulp.task("assets", 'Copies all assets (css stylesheets, images etc.) to the build folder.', [], function () {
"use strict";
gulp.src("css/**/*")
.pipe(concat("jqm.editable.listview.css"))
.pipe(gulp.dest('build'));
}, {
aliases: ['a', 'A']
});
gulp.task("build", '(default task) Cleans, concatenates and minifies all script files into build folder.', [
'clean',
'concat',
'minify',
'assets',
'minify-css'
], noop, {
aliases: ['b', 'B']
});
gulp.task('lint', '', [], function () {
/* style and lint errors */
var jscs = require('gulp-jscs');
var jshint = require('gulp-jshint');
var stylish = require('gulp-jscs-stylish');
gulp.src('js/*.js')
.pipe(jshint()) // hint
.pipe(jscs()) // enforce style guide
.on('error', noop) // don't stop on error
.pipe(stylish.combineWithHintResults()) // combine with jshint results
.pipe(jshint.reporter('jshint-stylish')); // use any jshint reporter to log hint and style guide errors
});
gulp.task('unit', '', [], function () {
var mochaPhantomJS = require('gulp-mocha-phantomjs');
return gulp.src(['tests/test-runner.html'], {
read: false
})
.pipe(mochaPhantomJS({
reporter: 'spec'
}));
});
gulp.task('default', '', ['build']);
gulp.task('test', ['lint', 'unit']);