Completed
Push — dev/5.5.4 ( eb818b...9021cc )
by Sudar
02:15
created

Gruntfile.js (1 issue)

Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
/* global module, require */
2
module.exports = function( grunt ) {
1 ignored issue
show
Rule 'no-reserved-keys' was removed and replaced by: quote-props
Loading history...
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