This repository has been archived by the owner on Jul 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Gruntfile.js
122 lines (111 loc) · 2.71 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
module.exports = function (grunt) {
"use strict";
require('load-grunt-tasks')(grunt);
grunt.registerTask('default', [
'build'
]);
grunt.registerTask('build', [
'clean',
'copy:components',
'less:dev'
]);
grunt.registerTask('copy:components', [
'copy:angular',
'copy:angularRoute',
'copy:angularResource',
'copy:lodash',
'copy:fontAwesome'
]);
var configuration = {
styles: 'src/main/webapp/resources/styles',
less: 'src/main/webapp/resources/less',
scripts: 'src/main/webapp/resources/scripts',
fonts: 'src/main/webapp/resources/fonts',
components: 'bower_components'
};
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
config: configuration,
// CLEAN
clean: {
styles: ['<%= config.styles %>/app*.css'],
scripts: ['<%= config.scripts %>/app*.js']
},
// COPY
copy: {
angular: {
expand: true,
cwd: '<%= config.components %>/angular/',
src: '*.js',
dest: '<%= config.scripts %>/vendors/angular/'
},
angularRoute: {
expand: true,
cwd: '<%= config.components %>/angular-route/',
src: '*.js',
dest: '<%= config.scripts %>/vendors/angular/'
},
angularResource: {
expand: true,
cwd: '<%= config.components %>/angular-resource/',
src: '*.js',
dest: '<%= config.scripts %>/vendors/angular/'
},
lodash: {
expand: true,
cwd: '<%= config.components %>/lodash/dist/',
src: '*.js',
dest: '<%= config.scripts %>/vendors/lodash/'
},
fontAwesome: {
expand: true,
cwd: '<%= config.components %>/font-awesome/fonts/',
src: '*',
dest: '<%= config.fonts %>'
}
},
// LESS
less: {
options: {
paths: ['<%= config.components %>', '<%= config.less %>']
},
dev: {
files: {
'<%= config.styles %>/app.css': '<%= config.less %>/app.less'
}
},
prod: {
options: {
compress: true,
cleancss: true
},
files: {
'<%= config.styles %>/app.min.css': '<%= config.less %>/app.less'
}
}
},
// UGLIFY
uglify: {
files: {
'<%= config.scripts %>/app.min.js': '<%= config.scripts %>/app.js'
}
},
// WATCH
watch: {
options: {
forever: true,
livereload: false
},
less: {
files: ['<%= config.less %>/**/*.less'],
tasks: ['less:dev']
},
public: {
options: {
livereload: true
},
files: ['<%= config.styles %>/**/*.css', '<%= config.scripts %>/**/*.js']
}
}
});
};