Completed
Push — master ( 146458...b94c12 )
by Sudar
01:55
created

Gruntfile.js   A

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 151
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 6
Bugs 0 Features 0
Metric Value
cc 0
nc 1
dl 0
loc 151
rs 10
c 6
b 0
f 0
wmc 1
mnd 0
bc 1
fnc 1
bpm 1
cpm 1
noi 0
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