-
Notifications
You must be signed in to change notification settings - Fork 12
/
Gruntfile.js
117 lines (105 loc) · 2.76 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
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
// Project configuration.
grunt.initConfig( {
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
compress: {
global_defs: {
"EO_SCRIPT_DEBUG": false
},
dead_code: true
},
banner: '/*! <%= pkg.title %> <%= pkg.version %> <%= grunt.template.today("yyyy-mm-dd HH:MM") %> */\n'
},
build: {
files: [{
expand: true, // Enable dynamic expansion.
src: ['js/*.js', '!js/*.min.js'], // Actual pattern(s) to match.
ext: '.min.js', // Dest filepaths will have this extension.
}]
}
},
jshint: {
options: {
reporter: require('jshint-stylish'),
globals: {
"EO_SCRIPT_DEBUG": false,
},
'-W099': true, //Mixed spaces and tabs
'-W083': true,//TODO Fix functions within loop
'-W082': true, //Todo Function declarations should not be placed in blocks
'-W020': true, //Read only - error when assigning EO_SCRIPT_DEBUG a value.
},
all: [ 'js/*.js', '!js/*.min.js' ]
},
watch: {
scripts: {
files: 'js/*.js',
tasks: ['jshint', 'uglify'],
options: {
debounceDelay: 250,
},
}
},
// # Internationalization
// Add text domain
addtextdomain: {
options: {
textdomain: '<%= pkg.name %>', // Project text domain.
},
target: {
files: {
src: ['*.php', '**/*.php', '**/**/*.php', '!node_modules/**', '!deploy/**']
}
}
},
// Generate .pot file
makepot: {
target: {
options: {
domainPath: '/languages', // Where to save the POT file.
exclude: ['deploy'], // List of files or directories to ignore.
mainFile: '<%= pkg.name %>.php', // Main project file.
potFilename: '<%= pkg.name %>.pot', // Name of the POT file.
type: 'wp-plugin', // Type of project (wp-plugin or wp-theme).
potHeaders: {
'Report-Msgid-Bugs-To': 'https://github.com/itthinx/woocommerce-product-generator/issues'
}
}
}
},
// bump version numbers (replace with version in package.json)
replace: {
Version: {
src: [
'readme.txt',
'<%= pkg.name %>.php'
],
overwrite: true,
replacements: [
{
from: /Stable tag:.*$/m,
to: "Stable tag: <%= pkg.version %>"
},
{
from: /Version:.*$/m,
to: "Version: <%= pkg.version %>"
},
{
from: /public \$version = \'.*.'/m,
to: "public $version = '<%= pkg.version %>'"
},
{
from: /public \$version = \'.*.'/m,
to: "public $version = '<%= pkg.version %>'"
}
]
}
}
} );
grunt.registerTask( 'test', [ 'jshint', 'newer:uglify' ] );
grunt.registerTask( 'build', [ 'replace', 'jshint', 'uglify' ] );
grunt.registerTask( 'release', [ 'build', 'addtextdomain', 'makepot' ] );
};