2014-02-02 19:20:52 +00:00
|
|
|
/* jshint node:true */
|
2014-08-01 12:53:31 +00:00
|
|
|
module.exports = function( grunt ) {
|
2014-02-02 19:20:52 +00:00
|
|
|
'use strict';
|
2014-01-30 16:11:02 +00:00
|
|
|
|
2014-02-02 19:22:05 +00:00
|
|
|
grunt.initConfig({
|
2014-08-29 21:04:13 +00:00
|
|
|
|
2014-10-23 21:42:07 +00:00
|
|
|
// Setting folder templates.
|
2014-02-02 19:24:02 +00:00
|
|
|
dirs: {
|
|
|
|
css: 'assets/css',
|
|
|
|
fonts: 'assets/fonts',
|
|
|
|
images: 'assets/images',
|
|
|
|
js: 'assets/js'
|
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// JavaScript linting with JSHint.
|
2014-08-04 14:12:50 +00:00
|
|
|
jshint: {
|
|
|
|
options: {
|
|
|
|
jshintrc: '.jshintrc'
|
|
|
|
},
|
|
|
|
all: [
|
|
|
|
'Gruntfile.js',
|
|
|
|
'<%= dirs.js %>/admin/*.js',
|
|
|
|
'!<%= dirs.js %>/admin/*.min.js',
|
|
|
|
'<%= dirs.js %>/frontend/*.js',
|
2014-11-14 11:58:21 +00:00
|
|
|
'!<%= dirs.js %>/frontend/*.min.js',
|
|
|
|
'includes/gateways/simplify-commerce/assets/js/*.js',
|
|
|
|
'!includes/gateways/simplify-commerce/assets/js/*.min.js'
|
2014-08-04 14:12:50 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
|
2014-02-02 20:47:06 +00:00
|
|
|
// Minify .js files.
|
|
|
|
uglify: {
|
|
|
|
options: {
|
|
|
|
preserveComments: 'some'
|
|
|
|
},
|
|
|
|
admin: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: '<%= dirs.js %>/admin/',
|
|
|
|
src: [
|
|
|
|
'*.js',
|
2015-10-01 13:46:08 +00:00
|
|
|
'!*.min.js'
|
2014-02-02 20:47:06 +00:00
|
|
|
],
|
|
|
|
dest: '<%= dirs.js %>/admin/',
|
|
|
|
ext: '.min.js'
|
|
|
|
}]
|
|
|
|
},
|
2015-10-01 13:46:08 +00:00
|
|
|
vendor: {
|
2015-05-25 14:27:28 +00:00
|
|
|
files: {
|
2015-10-01 13:46:08 +00:00
|
|
|
'<%= dirs.js %>/accounting/accounting.min.js': ['<%= dirs.js %>/accounting/accounting.js'],
|
2015-02-02 16:11:05 +00:00
|
|
|
'<%= dirs.js %>/jquery-blockui/jquery.blockUI.min.js': ['<%= dirs.js %>/jquery-blockui/jquery.blockUI.js'],
|
|
|
|
'<%= dirs.js %>/jquery-cookie/jquery.cookie.min.js': ['<%= dirs.js %>/jquery-cookie/jquery.cookie.js'],
|
2015-10-01 13:46:08 +00:00
|
|
|
'<%= dirs.js %>/jquery-flot/jquery.flot.min.js': ['<%= dirs.js %>/jquery-flot/jquery.flot.js'],
|
|
|
|
'<%= dirs.js %>/jquery-flot/jquery.flot.pie.min.js': ['<%= dirs.js %>/jquery-flot/jquery.flot.pie.js'],
|
|
|
|
'<%= dirs.js %>/jquery-flot/jquery.flot.resize.min.js': ['<%= dirs.js %>/jquery-flot/jquery.flot.resize.js'],
|
|
|
|
'<%= dirs.js %>/jquery-flot/jquery.flot.stack.min.js': ['<%= dirs.js %>/jquery-flot/jquery.flot.stack.js'],
|
|
|
|
'<%= dirs.js %>/jquery-flot/jquery.flot.time.min.js': ['<%= dirs.js %>/jquery-flot/jquery.flot.time.js'],
|
2015-05-25 14:42:42 +00:00
|
|
|
'<%= dirs.js %>/jquery-payment/jquery.payment.min.js': ['<%= dirs.js %>/jquery-payment/jquery.payment.js'],
|
2015-06-08 21:31:19 +00:00
|
|
|
'<%= dirs.js %>/jquery-qrcode/jquery.qrcode.min.js': ['<%= dirs.js %>/jquery-qrcode/jquery.qrcode.js'],
|
2015-07-14 14:18:03 +00:00
|
|
|
'<%= dirs.js %>/jquery-serializejson/jquery.serializejson.min.js': ['<%= dirs.js %>/jquery-serializejson/jquery.serializejson.js'],
|
2015-05-25 14:42:42 +00:00
|
|
|
'<%= dirs.js %>/jquery-tiptip/jquery.tipTip.min.js': ['<%= dirs.js %>/jquery-tiptip/jquery.tipTip.js'],
|
2015-10-01 13:46:08 +00:00
|
|
|
'<%= dirs.js %>/jquery-ui-touch-punch/jquery-ui-touch-punch.min.js': ['<%= dirs.js %>/jquery-ui-touch-punch/jquery-ui-touch-punch.js'],
|
2015-05-25 14:42:42 +00:00
|
|
|
'<%= dirs.js %>/prettyPhoto/jquery.prettyPhoto.init.min.js': ['<%= dirs.js %>/prettyPhoto/jquery.prettyPhoto.init.js'],
|
|
|
|
'<%= dirs.js %>/prettyPhoto/jquery.prettyPhoto.min.js': ['<%= dirs.js %>/prettyPhoto/jquery.prettyPhoto.js'],
|
2015-10-01 13:46:08 +00:00
|
|
|
'<%= dirs.js %>/round/round.min.js': ['<%= dirs.js %>/round/round.js'],
|
2015-05-25 14:42:42 +00:00
|
|
|
'<%= dirs.js %>/select2/select2.min.js': ['<%= dirs.js %>/select2/select2.js'],
|
|
|
|
'<%= dirs.js %>/stupidtable/stupidtable.min.js': ['<%= dirs.js %>/stupidtable/stupidtable.js'],
|
|
|
|
'<%= dirs.js %>/zeroclipboard/jquery.zeroclipboard.min.js': ['<%= dirs.js %>/zeroclipboard/jquery.zeroclipboard.js']
|
2014-02-02 20:47:06 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
frontend: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: '<%= dirs.js %>/frontend/',
|
|
|
|
src: [
|
|
|
|
'*.js',
|
|
|
|
'!*.min.js'
|
|
|
|
],
|
|
|
|
dest: '<%= dirs.js %>/frontend/',
|
|
|
|
ext: '.min.js'
|
|
|
|
}]
|
2014-11-14 11:58:21 +00:00
|
|
|
},
|
|
|
|
simplify_commerce: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'includes/gateways/simplify-commerce/assets/js/',
|
|
|
|
src: [
|
|
|
|
'*.js',
|
|
|
|
'!*.min.js'
|
|
|
|
],
|
|
|
|
dest: 'includes/gateways/simplify-commerce/assets/js/',
|
|
|
|
ext: '.min.js'
|
|
|
|
}]
|
2014-09-22 16:55:53 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
// Compile all .scss files.
|
|
|
|
sass: {
|
|
|
|
compile: {
|
2014-09-26 13:00:36 +00:00
|
|
|
options: {
|
2014-10-17 17:21:54 +00:00
|
|
|
sourcemap: 'none',
|
|
|
|
loadPath: require( 'node-bourbon' ).includePaths
|
2014-09-26 13:00:36 +00:00
|
|
|
},
|
2014-09-22 16:55:53 +00:00
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: '<%= dirs.css %>/',
|
|
|
|
src: ['*.scss'],
|
|
|
|
dest: '<%= dirs.css %>/',
|
|
|
|
ext: '.css'
|
|
|
|
}]
|
|
|
|
}
|
2014-02-02 20:47:06 +00:00
|
|
|
},
|
|
|
|
|
2014-08-04 14:12:50 +00:00
|
|
|
// Minify all .css files.
|
|
|
|
cssmin: {
|
|
|
|
minify: {
|
|
|
|
expand: true,
|
|
|
|
cwd: '<%= dirs.css %>/',
|
|
|
|
src: ['*.css'],
|
|
|
|
dest: '<%= dirs.css %>/',
|
|
|
|
ext: '.css'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// Watch changes for assets.
|
2014-02-02 21:33:20 +00:00
|
|
|
watch: {
|
2014-09-22 16:55:53 +00:00
|
|
|
css: {
|
|
|
|
files: ['<%= dirs.css %>/*.scss'],
|
|
|
|
tasks: ['sass', 'cssmin']
|
2014-02-02 21:33:20 +00:00
|
|
|
},
|
|
|
|
js: {
|
|
|
|
files: [
|
|
|
|
'<%= dirs.js %>/admin/*js',
|
|
|
|
'<%= dirs.js %>/frontend/*js',
|
2014-02-19 19:53:00 +00:00
|
|
|
'!<%= dirs.js %>/admin/*.min.js',
|
2014-07-30 17:23:34 +00:00
|
|
|
'!<%= dirs.js %>/frontend/*.min.js'
|
2014-02-02 21:33:20 +00:00
|
|
|
],
|
2015-07-10 05:16:04 +00:00
|
|
|
tasks: ['jshint', 'uglify']
|
2014-02-02 21:33:20 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// Generate POT files.
|
2014-08-01 12:53:31 +00:00
|
|
|
makepot: {
|
|
|
|
options: {
|
|
|
|
type: 'wp-plugin',
|
|
|
|
domainPath: 'i18n/languages',
|
|
|
|
potHeaders: {
|
|
|
|
'report-msgid-bugs-to': 'https://github.com/woothemes/woocommerce/issues',
|
|
|
|
'language-team': 'LANGUAGE <EMAIL@ADDRESS>'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
frontend: {
|
|
|
|
options: {
|
|
|
|
potFilename: 'woocommerce.pot',
|
|
|
|
exclude: [
|
|
|
|
'includes/admin/.*',
|
2015-01-16 16:06:58 +00:00
|
|
|
'apigen/.*',
|
2014-10-29 19:45:29 +00:00
|
|
|
'tests/.*',
|
|
|
|
'tmp/.*'
|
2014-08-01 12:53:31 +00:00
|
|
|
],
|
2014-08-01 21:05:30 +00:00
|
|
|
processPot: function ( pot ) {
|
2014-08-01 12:53:31 +00:00
|
|
|
pot.headers['project-id-version'] += ' Frontend';
|
|
|
|
return pot;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
admin: {
|
|
|
|
options: {
|
|
|
|
potFilename: 'woocommerce-admin.pot',
|
2014-08-21 18:31:13 +00:00
|
|
|
include: [
|
|
|
|
'includes/admin/.*'
|
2014-08-01 12:53:31 +00:00
|
|
|
],
|
2014-08-01 21:05:30 +00:00
|
|
|
processPot: function ( pot ) {
|
2014-08-01 12:53:31 +00:00
|
|
|
pot.headers['project-id-version'] += ' Admin';
|
|
|
|
return pot;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// Check textdomain errors.
|
2014-08-01 12:53:31 +00:00
|
|
|
checktextdomain: {
|
|
|
|
options:{
|
|
|
|
text_domain: 'woocommerce',
|
|
|
|
keywords: [
|
|
|
|
'__:1,2d',
|
|
|
|
'_e:1,2d',
|
|
|
|
'_x:1,2c,3d',
|
|
|
|
'esc_html__:1,2d',
|
|
|
|
'esc_html_e:1,2d',
|
|
|
|
'esc_html_x:1,2c,3d',
|
|
|
|
'esc_attr__:1,2d',
|
|
|
|
'esc_attr_e:1,2d',
|
|
|
|
'esc_attr_x:1,2c,3d',
|
|
|
|
'_ex:1,2c,3d',
|
|
|
|
'_n:1,2,4d',
|
|
|
|
'_nx:1,2,4c,5d',
|
|
|
|
'_n_noop:1,2,3d',
|
|
|
|
'_nx_noop:1,2,3c,4d'
|
2014-08-01 21:05:30 +00:00
|
|
|
]
|
2014-08-01 12:53:31 +00:00
|
|
|
},
|
|
|
|
files: {
|
|
|
|
src: [
|
|
|
|
'**/*.php', // Include all files
|
2015-01-16 16:06:58 +00:00
|
|
|
'!apigen/**', // Exclude apigen/
|
2014-10-29 19:45:29 +00:00
|
|
|
'!node_modules/**', // Exclude node_modules/
|
|
|
|
'!tests/**', // Exclude tests/
|
|
|
|
'!tmp/**' // Exclude tmp/
|
2014-08-01 12:53:31 +00:00
|
|
|
],
|
2014-08-01 21:05:30 +00:00
|
|
|
expand: true
|
|
|
|
}
|
2014-08-01 12:53:31 +00:00
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// Exec shell commands.
|
2014-02-02 19:22:05 +00:00
|
|
|
shell: {
|
2014-02-02 21:16:25 +00:00
|
|
|
options: {
|
|
|
|
stdout: true,
|
|
|
|
stderr: true
|
|
|
|
},
|
2014-02-14 14:29:30 +00:00
|
|
|
apigen: {
|
|
|
|
command: [
|
2015-02-23 14:40:16 +00:00
|
|
|
'apigen generate',
|
|
|
|
'cd apigen',
|
|
|
|
'php hook-docs.php'
|
2014-02-14 14:29:30 +00:00
|
|
|
].join( '&&' )
|
2014-02-02 19:22:05 +00:00
|
|
|
}
|
2014-02-10 12:52:41 +00:00
|
|
|
},
|
|
|
|
|
2014-08-29 21:04:13 +00:00
|
|
|
// Clean the directory.
|
2014-02-10 12:52:41 +00:00
|
|
|
clean: {
|
2014-02-14 15:09:35 +00:00
|
|
|
apigen: {
|
|
|
|
src: [ 'wc-apidocs' ]
|
2014-07-30 17:23:34 +00:00
|
|
|
}
|
2014-02-10 14:29:41 +00:00
|
|
|
}
|
2014-02-02 19:22:05 +00:00
|
|
|
});
|
2014-01-30 16:11:02 +00:00
|
|
|
|
2014-02-02 19:22:05 +00:00
|
|
|
// Load NPM tasks to be used here
|
|
|
|
grunt.loadNpmTasks( 'grunt-shell' );
|
2014-10-18 05:29:47 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-wp-i18n' );
|
|
|
|
grunt.loadNpmTasks( 'grunt-checktextdomain' );
|
2014-08-04 14:12:50 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
|
2014-02-02 20:47:06 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-uglify' );
|
2014-09-22 16:55:53 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-sass' );
|
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
|
2014-02-02 21:33:20 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-watch' );
|
2014-02-10 12:52:41 +00:00
|
|
|
grunt.loadNpmTasks( 'grunt-contrib-clean' );
|
2014-01-30 16:34:23 +00:00
|
|
|
|
2014-02-02 19:22:05 +00:00
|
|
|
// Register tasks
|
2014-02-02 20:08:35 +00:00
|
|
|
grunt.registerTask( 'default', [
|
2015-07-10 05:16:04 +00:00
|
|
|
'jshint',
|
|
|
|
'uglify',
|
|
|
|
'css'
|
2014-02-02 20:08:35 +00:00
|
|
|
]);
|
|
|
|
|
2014-09-26 13:00:36 +00:00
|
|
|
grunt.registerTask( 'css', [
|
|
|
|
'sass',
|
|
|
|
'cssmin'
|
|
|
|
]);
|
|
|
|
|
2014-02-14 14:29:30 +00:00
|
|
|
grunt.registerTask( 'docs', [
|
2014-07-30 17:23:34 +00:00
|
|
|
'clean:apigen',
|
2014-02-14 14:29:30 +00:00
|
|
|
'shell:apigen'
|
|
|
|
]);
|
|
|
|
|
2014-02-02 20:08:35 +00:00
|
|
|
grunt.registerTask( 'dev', [
|
|
|
|
'default',
|
2014-08-01 12:53:31 +00:00
|
|
|
'makepot'
|
2014-02-02 20:08:35 +00:00
|
|
|
]);
|
2014-07-30 17:23:34 +00:00
|
|
|
};
|