-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
92 lines (86 loc) · 2.43 KB
/
Gruntfile.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
/* eslint-env node */
/* eslint-disable camelcase */
module.exports = function(grunt) {
"use strict";
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
clean: {
options: {},
build: ["test/*.tap", "test/coverage"]
},
uglify: {
options: {
banner: "/*! <%= pkg.name %> v<%= pkg.version %> */\n",
mangle: true,
sourceMap: true
},
build: {
src: "src/<%= pkg.name %>.js",
dest: "dist/<%= pkg.name %>.min.js"
}
},
eslint: {
console: {
src: [
"*.js",
"src/**/*.js",
"test/*.js"
]
},
build: {
options: {
outputFile: "eslint.xml",
format: "jslint-xml",
silent: true
},
src: [
"Gruntfile.js",
"src/**/*.js",
"test/*.js"
]
}
},
mocha_phantomjs: {
all: {
options: {
urls: [
"http://localhost:4002/test/test-no-blocker.html"
],
reporter: "tap",
output: "test/mocha.tap"
}
}
},
connect: {
server: {
options: {
port: 4002,
base: "."
}
}
}
});
//
// Plugins
//
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-connect");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.loadNpmTasks("grunt-mocha-phantomjs");
grunt.loadNpmTasks("gruntify-eslint");
//
// Tasks
//
grunt.registerTask("test", ["test:mocha"]);
grunt.registerTask("test:mocha", ["connect", "mocha_phantomjs"]);
grunt.registerTask("lint", ["eslint:console"]);
grunt.registerTask("lint:build", ["eslint:build"]);
grunt.registerTask("build", ["uglify"]);
//
// Task Groups
//
grunt.registerTask("default", ["lint", "build"]);
grunt.registerTask("travis", ["test", "lint"]);
grunt.registerTask("all", ["clean", "test", "lint:build", "build"]);
};