-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
101 lines (91 loc) · 1.93 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
93
94
95
96
97
98
99
100
101
var path = require("path"),
through = require("through"),
fs = require("fs");
module.exports = function(grunt) {
function RawFile(file, options) {
if (path.extname(file) !== ".bin") return through();
options = options || {};
options.output = "source";
var src = [];
return through(write, end);
function write(chunk) {
var block = [];
for (var i = 0; i < chunk.length; i++) {
block.push(chunk[i]);
if (block.length >= 32) {
src.push(block.join(", "));
block = [];
}
}
if (block.length) { src.push(block.join(", ")); }
}
function end() {
var contents = "module.exports = [1];"//\n\t" + src.join(",\n\t") + "\n];";
this.emit("data", contents);
this.emit("end");
}
}
var config = {
mochaTest: {
test: {
options: {
reporter: 'spec',
require: './test/helper.js'
},
src: ['test/**/*.js', "!test/helper.js"]
}
},
connect: {
server: {
options: {
port: 9001,
base: 'public'
}
}
},
less: {
dev: {
options: {
style: 'expanded'
},
files: {
'public/assets/main.css': 'less/main.less'
}
}
},
browserify: {
dev: {
files: {
'public/assets/main.js': ['src/main.js']
},
options: {
transform: [
RawFile,
["browserify-pegjs", { cache: true }],
"browserify-ejs"
],
browserifyOptions: {
debug: true
},
watch: true
}
}
},
watch: {
less: {
options: { atBegin: true },
files: ["less/**/*"],
tasks: ["less"]
}
}
};
grunt.initConfig(config);
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.registerTask("test", ["mochaTest"]);
grunt.registerTask("default", ["less", "browserify"]);
grunt.registerTask("dev", ["connect", "browserify", "watch"]);
};