-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathGruntfile.js
123 lines (115 loc) · 2.28 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('bower.json'),
jshint : {
options : {
'-W004' : true,
'-W097' : true,
globals : {
'$' : true,
'Tribe' : true,
'requestAnimationFrame' : true,
'cancelAnimationFrame' : true,
'WeakMap' : true,
'HexGrid' : true,
'getParameters' : true,
'document' : true,
}
},
beforeconcat : ['js/*.js']
},
uglify: {
options : {
banner : '/*\n<%= pkg.name %> <%= pkg.version %>\n<%= pkg.authors %>\n<%= grunt.template.today("yyyy-mm-dd") %>\n*/\n'
},
build : {
src : [
'js/utils.js',
'js/hex_grid.js',
'js/hex_world.js',
'js/world_controls.js',
'js/tribe.js'
],
dest : 'js/dist/hex_world.min.js'
}
},
// package for deployment
copy: {
package: {
files: [
{
expand: true,
flatten: true,
src: ['js/dist/*', 'js/hex_demo.js'],
dest: 'dist/js/'
}, {
expand: true,
flatten: true,
src: [
'bower_components/jquery/dist/jquery.min.js',
'bower_components/svg.js/dist/svg.min.js'
],
dest: 'dist/vendor/'
}, {
expand: true,
src: ['index.html', 'hex.css'],
dest: 'dist'
}, {
expand: true,
src: ['doc/**'],
dest: 'dist'
}
]
}
},
clean: {
build : ['js/dist'],
dist : ['dist'],
doc : ['doc']
},
jsdoc : {
default : {
src : 'js/*.js',
dest : 'doc'
}
},
karma : {
default : {
options : {
configFile : 'karma.conf.js',
browsers : ['Firefox'] // svg doesn't work in PhantomJS
}
}
},
processhtml : {
build : {
files : {
'index_dev.html' : ['index_src.html']
}
},
dist : {
files : {
'index.html' : ['index_dev.html']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-processhtml');
grunt.registerTask('build', [
'jshint:beforeconcat',
'karma',
'jsdoc',
'uglify',
'processhtml:build'
]);
grunt.registerTask('dist', [
'processhtml:dist',
'copy:package'
]);
};