/** * 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' ]); };