-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
122 lines (105 loc) · 2.06 KB
/
gulpfile.js
File metadata and controls
122 lines (105 loc) · 2.06 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
122
/* global process, __dirname */
"use strict";
var gulp = require("gulp");
var runSequence = require("run-sequence");
var pkg = require("./package.json");
var util = require("gulp-util");
var sourcemaps = require("gulp-sourcemaps");
var concat = require("gulp-concat");
var uglify = require("gulp-uglify");
var del = require("del");
var rename = require("gulp-rename");
var karma = require("karma").server;
var jshint = require("gulp-jshint");
var config = {
karma: __dirname + "/karma.js"
};
var src = {
base: "./",
js: ["src/*.js"]
};
var dest = {
dir: {
build: "build/",
dist: "dist/",
coverage: "coverage/"
},
file: "angular-minimodal-${version}"
};
var clean = [
dest.dir.build + "*",
dest.dir.dist + "*",
dest.dir.coverave + "*"
];
var sourceRoot = "src";
gulp.task("default", function(callback)
{
runSequence(
"clean",
"jshint",
"test",
"js",
callback
);
});
gulp.task("dist", function(callback)
{
runSequence(
"clean",
"jshint",
"test",
"js-dist",
callback
);
});
gulp.task("watch", ["default", "test-watch"], function()
{
gulp.watch(src.js, ["js"]);
});
gulp.task("clean", function()
{
return del(clean);
});
function jsTask(isDist)
{
var dir = isDist ? dest.dir.dist : dest.dir.build;
var v = isDist ? pkg.version : "latest";
var name = dest.file.replace("${version}", v);
var ext = ".js";
return gulp.src(src.js)
.pipe(sourcemaps.init())
.pipe(concat(name + ext))
.pipe(gulp.dest(dir))
.pipe(uglify({ mangle: true }))
.pipe(rename(name + ".min" + ext))
.pipe(sourcemaps.write("./", { sourceRoot: sourceRoot }))
.pipe(gulp.dest(dir));
}
gulp.task("js", function()
{
return jsTask(false);
});
gulp.task("js-dist", function()
{
return jsTask(true);
});
gulp.task("jshint", function()
{
return gulp.src(src.js)
.pipe(jshint())
.pipe(jshint.reporter("jshint-stylish"));
});
gulp.task("test", function(done)
{
karma.start({
configFile: __dirname + "/karma.js",
singleRun: true
}, done);
});
gulp.task("test-watch", function(done)
{
karma.start({
configFile: __dirname + "/karma.js",
autoWatch: true
});
});