-
Notifications
You must be signed in to change notification settings - Fork 18
/
Gruntfile.js
128 lines (114 loc) · 3.85 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
124
125
126
127
128
'use strict';
module.exports = function (grunt) {
// Load grunt tasks automatically
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt);
// init required configurations for each task.
grunt.initConfig({
// Project settings
config: {
path: {
webapp: {
root: 'src/main/webapp'
},
temp: {
root: 'build/grunt/temp'
},
build: {
root: 'build/grunt/webapp'
}
}
},
// From grunt-contrib-clean
clean: {
build: [
'<%= config.path.temp.root %>',
'<%= config.path.build.root %>'
]
},
// From grunt-bower-install-simple. Downloads the web dependencies.
"bower-install-simple": {
options: {
color: true,
production: false
}
},
// From grunt-wiredep. Automatically inject Bower components into the HTML file
wiredep: {
target: {
src: '<%= config.path.webapp.root %>/index.html',
ignorePath: '<%= config.path.webapp.root %>'
}
},
// From grunt-contrib-copy. Copies remaining files to places other tasks can use
copy: {
build: {
files: [
{
src: '<%= config.path.webapp.root %>/index.html',
dest: '<%= config.path.build.root %>/index.html'
}
]
}
},
// From grunt-contrib-htmlmin. Minifies index.html file.
htmlmin: {
prod: {
options: {
collapseBooleanAttributes: true,
collapseWhitespace: true,
removeComments: true,
removeCommentsFromCDATA: true,
removeEmptyAttributes: true,
removeOptionalTags: true,
removeRedundantAttributes: true,
useShortDoctype: true
},
files: [
{
expand: true,
cwd: '<%= config.path.build.root %>',
src: ['index.html'],
dest: '<%= config.path.build.root %>'
}
]
}
},
// From grunt-usemin. Reads HTML for usemin blocks to enable smart builds
useminPrepare: {
html: '<%= config.path.webapp.root %>/index.html',
options: {
staging: '<%= config.path.temp.root %>',
root: '<%= config.path.webapp.root %>',
dest: '<%= config.path.build.root %>'
}
},
// From grunt-usemin.
usemin: {
html: '<%= config.path.build.root %>/index.html'
},
// From grunt-contrib-uglify.
uglify: {
options: {
mangle: false
}
}
}
);
// Task: Build production version ready for deployment
grunt.registerTask('build', [
'clean:build',
'bower-install-simple',
'wiredep',
'useminPrepare',
'concat:generated',
'cssmin',
'uglify',
'copy:build',
'usemin',
'htmlmin'
]);
grunt.registerTask('default', [
'build'
]);
};