1
|
|
|
/* global module, require */ |
2
|
|
|
module.exports = function( grunt ) { |
3
|
|
|
'use strict'; |
4
|
|
|
|
5
|
|
|
// Load all grunt tasks |
6
|
|
|
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); |
7
|
|
|
|
8
|
|
|
// Project configuration |
9
|
|
|
grunt.initConfig( { |
10
|
|
|
pkg: grunt.file.readJSON( 'package.json' ), |
11
|
|
|
|
12
|
|
|
jshint: { |
13
|
|
|
browser: { |
14
|
|
|
files: { |
15
|
|
|
src: [ 'assets/js/src/*.js' ] |
16
|
|
|
}, |
17
|
|
|
options: { |
18
|
|
|
jshintrc: '.jshintrc' |
19
|
|
|
} |
20
|
|
|
}, |
21
|
|
|
grunt: { |
22
|
|
|
files:{ |
23
|
|
|
src: [ 'Gruntfile.js' ] |
24
|
|
|
}, |
25
|
|
|
options: { |
26
|
|
|
jshintrc: '.gruntjshintrc' |
27
|
|
|
} |
28
|
|
|
} |
29
|
|
|
}, |
30
|
|
|
|
31
|
|
|
concat: { |
32
|
|
|
options: { |
33
|
|
|
stripBanners: true, |
34
|
|
|
banner: '/*! <%= pkg.title %> - v<%= pkg.version %> %>\n' + |
35
|
|
|
' * <%= pkg.homepage %>\n' + |
36
|
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %>;' + |
37
|
|
|
' * Licensed GPLv2+' + |
38
|
|
|
' */\n', |
39
|
|
|
sourceMap: true |
40
|
|
|
}, |
41
|
|
|
css: { |
42
|
|
|
files: { |
43
|
|
|
'assets/css/bulk-delete.css': ['assets/css/src/**/*.css'] |
44
|
|
|
} |
45
|
|
|
}, |
46
|
|
|
scripts: { |
47
|
|
|
files: { |
48
|
|
|
'assets/js/bulk-delete.js': ['assets/js/src/**/*.js'] |
49
|
|
|
} |
50
|
|
|
} |
51
|
|
|
}, |
52
|
|
|
|
53
|
|
|
uglify: { |
54
|
|
|
all: { |
55
|
|
|
options: { |
56
|
|
|
banner: '/*! <%= pkg.title %> - v<%= pkg.version %> \n' + |
57
|
|
|
' * <%= pkg.homepage %>\n' + |
58
|
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %>;' + |
59
|
|
|
' * Licensed GPLv2+' + |
60
|
|
|
' */\n', |
61
|
|
|
mangle: { |
62
|
|
|
except: ['jQuery'] |
63
|
|
|
} |
64
|
|
|
}, |
65
|
|
|
files: { |
66
|
|
|
'assets/js/bulk-delete.min.js': ['assets/js/bulk-delete.js'] |
67
|
|
|
} |
68
|
|
|
} |
69
|
|
|
}, |
70
|
|
|
|
71
|
|
|
cssmin: { |
72
|
|
|
minify: { |
73
|
|
|
src: 'assets/css/bulk-delete.css', |
74
|
|
|
dest: 'assets/css/bulk-delete.min.css' |
75
|
|
|
} |
76
|
|
|
}, |
77
|
|
|
|
78
|
|
|
watch: { |
79
|
|
|
scripts: { |
80
|
|
|
files: ['assets/js/src/**/*.js'], |
81
|
|
|
tasks: ['jshint:browser', 'concat', 'uglify'], |
82
|
|
|
options: { |
83
|
|
|
debounceDelay: 500 |
84
|
|
|
} |
85
|
|
|
}, |
86
|
|
|
css: { |
87
|
|
|
files: ['assets/css/src/**/*.css'], |
88
|
|
|
tasks: ['concat', 'cssmin'], |
89
|
|
|
options: { |
90
|
|
|
debounceDelay: 500 |
91
|
|
|
} |
92
|
|
|
} |
93
|
|
|
}, |
94
|
|
|
|
95
|
|
|
clean : { |
96
|
|
|
dist: ['dist/'] |
97
|
|
|
}, |
98
|
|
|
|
99
|
|
|
copy: { |
100
|
|
|
timepicker: { |
101
|
|
|
files: [{ |
102
|
|
|
src : 'assets/vendor/jqueryui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.js', |
103
|
|
|
dest: 'assets/js/jquery-ui-timepicker-addon.min.js' |
104
|
|
|
}, |
105
|
|
|
{ |
106
|
|
|
src : 'assets/vendor/jqueryui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.css', |
107
|
|
|
dest: 'assets/css/jquery-ui-timepicker-addon.min.css' |
108
|
|
|
}] |
109
|
|
|
}, |
110
|
|
|
select2: { |
111
|
|
|
files: [{ |
112
|
|
|
src : 'assets/vendor/select2/dist/js/select2.min.js', |
113
|
|
|
dest: 'assets/js/select2.min.js' |
114
|
|
|
}, |
115
|
|
|
{ |
116
|
|
|
src : 'assets/vendor/select2/dist/css/select2.min.css', |
117
|
|
|
dest: 'assets/css/select2.min.css' |
118
|
|
|
}] |
119
|
|
|
}, |
120
|
|
|
dist: { |
121
|
|
|
files : [ |
122
|
|
|
{ |
123
|
|
|
expand: true, |
124
|
|
|
src: [ |
125
|
|
|
'**', |
126
|
|
|
'!dist/**', |
127
|
|
|
'!assets-wp-repo/**', |
128
|
|
|
'!node_modules/**', |
129
|
|
|
'!assets/vendor/**', |
130
|
|
|
'!assets/js/src/**', |
131
|
|
|
'!assets/css/src/**', |
132
|
|
|
'!Gruntfile.js', |
133
|
|
|
'!bower.json', |
134
|
|
|
'!package.json', |
135
|
|
|
'!phpcs.xml', |
136
|
|
|
'!tags' |
137
|
|
|
], |
138
|
|
|
dest: 'dist/' |
139
|
|
|
} |
140
|
|
|
] |
141
|
|
|
} |
142
|
|
|
} |
143
|
|
|
} ); |
144
|
|
|
|
145
|
|
|
require('time-grunt')(grunt); |
146
|
|
|
|
147
|
|
|
grunt.registerTask('default', ['jshint:browser', 'concat', 'uglify', 'cssmin']); |
148
|
|
|
grunt.registerTask('vendor', ['copy:timepicker', 'copy:select2']); |
149
|
|
|
grunt.registerTask('build', [ 'default', 'vendor', 'clean', 'copy:dist']); |
150
|
|
|
|
151
|
|
|
grunt.util.linefeed = '\n'; |
152
|
|
|
}; |
153
|
|
|
|