145 lines
2.7 KiB
JavaScript
145 lines
2.7 KiB
JavaScript
/**
|
|
* This file has a bunch on extra stuff that isn't needed and might not work.
|
|
* That's OK. This is just for compiling the CSS during Products block prototype development. :)
|
|
*/
|
|
|
|
/* jshint node:true */
|
|
module.exports = function( grunt ) {
|
|
'use strict';
|
|
|
|
grunt.initConfig({
|
|
|
|
// Setting folder templates.
|
|
dirs: {
|
|
css: 'assets/css',
|
|
fonts: 'assets/fonts',
|
|
images: 'assets/images',
|
|
js: 'assets/js'
|
|
},
|
|
|
|
// Sass linting with Stylelint.
|
|
stylelint: {
|
|
options: {
|
|
configFile: '.stylelintrc'
|
|
},
|
|
all: [
|
|
'<%= dirs.css %>/*.scss',
|
|
]
|
|
},
|
|
|
|
// Compile all .scss files.
|
|
sass: {
|
|
compile: {
|
|
options: {
|
|
sourceMap: 'none'
|
|
},
|
|
files: [{
|
|
expand: true,
|
|
cwd: '<%= dirs.css %>/',
|
|
src: ['*.scss'],
|
|
dest: '<%= dirs.css %>/',
|
|
ext: '.css'
|
|
}]
|
|
}
|
|
},
|
|
|
|
// Generate RTL .css files
|
|
rtlcss: {
|
|
woocommerce: {
|
|
expand: true,
|
|
cwd: '<%= dirs.css %>',
|
|
src: [
|
|
'*.css',
|
|
'!select2.css',
|
|
'!*-rtl.css'
|
|
],
|
|
dest: '<%= dirs.css %>/',
|
|
ext: '-rtl.css'
|
|
}
|
|
},
|
|
|
|
// Minify all .css files.
|
|
cssmin: {
|
|
minify: {
|
|
expand: true,
|
|
cwd: '<%= dirs.css %>/',
|
|
src: ['*.css'],
|
|
dest: '<%= dirs.css %>/',
|
|
ext: '.css'
|
|
}
|
|
},
|
|
|
|
// Watch changes for assets.
|
|
watch: {
|
|
css: {
|
|
files: ['<%= dirs.css %>/*.scss'],
|
|
tasks: ['sass', 'rtlcss', 'cssmin']
|
|
},
|
|
js: {
|
|
files: [
|
|
'<%= dirs.js %>/admin/*js',
|
|
'<%= dirs.js %>/frontend/*js',
|
|
'!<%= dirs.js %>/admin/*.min.js',
|
|
'!<%= dirs.js %>/frontend/*.min.js'
|
|
],
|
|
tasks: ['jshint', 'uglify']
|
|
}
|
|
},
|
|
|
|
// Autoprefixer.
|
|
postcss: {
|
|
options: {
|
|
processors: [
|
|
require( 'autoprefixer' )({
|
|
browsers: [
|
|
'> 0.1%',
|
|
'ie 8',
|
|
'ie 9'
|
|
]
|
|
})
|
|
]
|
|
},
|
|
dist: {
|
|
src: [
|
|
'<%= dirs.css %>/*.css'
|
|
]
|
|
}
|
|
}
|
|
});
|
|
|
|
// Load NPM tasks to be used here
|
|
grunt.loadNpmTasks( 'grunt-sass' );
|
|
grunt.loadNpmTasks( 'grunt-rtlcss' );
|
|
grunt.loadNpmTasks( 'grunt-postcss' );
|
|
grunt.loadNpmTasks( 'grunt-stylelint' );
|
|
grunt.loadNpmTasks( 'grunt-wp-i18n' );
|
|
grunt.loadNpmTasks( 'grunt-checktextdomain' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-uglify' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-concat' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-watch' );
|
|
grunt.loadNpmTasks( 'grunt-contrib-clean' );
|
|
|
|
// Register tasks
|
|
grunt.registerTask( 'default', [
|
|
'css',
|
|
]);
|
|
|
|
grunt.registerTask( 'css', [
|
|
'sass',
|
|
'rtlcss',
|
|
'postcss',
|
|
'cssmin',
|
|
]);
|
|
|
|
grunt.registerTask( 'docs', [
|
|
'clean:apidocs',
|
|
'shell:apidocs'
|
|
]);
|
|
|
|
// Only an alias to 'default' task.
|
|
grunt.registerTask( 'dev', [
|
|
'default'
|
|
]);
|
|
}; |