From 15f02cbe8369e9eb6d92b9ee526134e4ac2abdd9 Mon Sep 17 00:00:00 2001 From: Stefan Kalscheuer Date: Tue, 5 Dec 2017 19:39:17 +0100 Subject: [PATCH] Gulp task refactored for in-place CSS minification --- Gulpfile.js | 45 +++++++++++++++++++++++--------- includes/class-wpliveticker2.php | 2 +- includes/scripts.php | 2 +- package.json | 3 ++- styles/wp-liveticker2.min.css | 1 - 5 files changed, 36 insertions(+), 17 deletions(-) delete mode 100644 styles/wp-liveticker2.min.css diff --git a/Gulpfile.js b/Gulpfile.js index 3b8202b..0793b16 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,12 +1,17 @@ -var gulp = require('gulp'); -var clean = require('gulp-clean'); -var copy = require('gulp-copy'); -var zip = require('gulp-zip'); -var composer = require('gulp-composer'); -var phpunit = require('gulp-phpunit'); -var exec = require('child_process').exec; -var phpcs = require('gulp-phpcs'); -var config = require('./package.json'); +const gulp = require('gulp'); +const clean = require('gulp-clean'); +const copy = require('gulp-copy'); +const zip = require('gulp-zip'); +const composer = require('gulp-composer'); +const phpunit = require('gulp-phpunit'); +const exec = require('child_process').exec; +const phpcs = require('gulp-phpcs'); +const cleanCSS = require('gulp-clean-css'); +const argv = require('yargs').argv; + +const config = require('./package.json'); +const dev = argv.dev; +const finalName = config.name + '.' + config.version; // Clean the target directory. gulp.task('clean', function () { @@ -43,19 +48,33 @@ gulp.task('test-cs', function (cb) { }); }); -// Bundle files as required for plugin distribution.. + +// Bundle files as required for plugin distribution. gulp.task('bundle', ['clean'], function () { console.log('Collecting files for package dist/' + config.name + config.version + ' ...'); return gulp.src(['**/*.php', 'styles/*.css', '!test/**', '!vendor/**', 'README.md', 'LICENSE.md'], {base: './'}) - .pipe(copy('./dist/' + config.name + '.' + config.version + '/' + config.name)); + .pipe(copy('./dist/' + finalName + '/' + config.name)); +}); + + +// Minify CSS. +gulp.task('minify-css', function () { + if (!dev) { + console.log('Minifying CSS ...'); + return gulp.src('./dist/' + finalName + '/' + config.name + '/styles/*.css') + .pipe(cleanCSS({compatibility: 'ie9'})) + .pipe(gulp.dest('./dist/' + finalName + '/' + config.name + '/styles/')); + } else { + console.log('Development flag detected, not minifying CSS ...'); + } }); // Create a ZIP package of the relevant files for plugin distribution. gulp.task('package', ['bundle'], function () { console.log('Building package dist/' + config.name + config.version + '.zip ...'); return gulp.src('./dist/' + config.name + '.' + config.version + '/**') - .pipe(zip(config.name + '.' + config.version + '.zip')) + .pipe(zip(finalName + '.zip')) .pipe(gulp.dest('./dist')); }); -gulp.task('default', ['clean', 'compose', 'test', 'test-cs', 'bundle', 'package']); \ No newline at end of file +gulp.task('default', ['clean', 'compose', 'test', 'test-cs', 'bundle', 'minify-css', 'package']); diff --git a/includes/class-wpliveticker2.php b/includes/class-wpliveticker2.php index 086582e..64f0ab8 100644 --- a/includes/class-wpliveticker2.php +++ b/includes/class-wpliveticker2.php @@ -203,7 +203,7 @@ class WPLiveticker2 { public static function enqueue_styles() { // Only add if shortcode is present. if ( self::$shortcode_present ) { - wp_enqueue_style( 'wplt-css', WPLT2_BASE . 'styles/wp-liveticker2.min.css', '', self::VERSION, 'all' ); + wp_enqueue_style( 'wplt-css', WPLT2_BASE . 'styles/wp-liveticker2.css', '', self::VERSION, 'all' ); } } diff --git a/includes/scripts.php b/includes/scripts.php index 925638a..64e5934 100644 --- a/includes/scripts.php +++ b/includes/scripts.php @@ -14,6 +14,6 @@ function wplt_enqueue_scripts() { global $post; // Register frontend CSS if ( has_shortcode( $post->post_content, 'liveticker') ) - wp_enqueue_style( 'wplt-css', WPLT_PLUGIN_URL . 'includes/css/wp-liveticker2.min.css', '', WPLT_VERSION, 'all' ); + wp_enqueue_style( 'wplt-css', WPLT_PLUGIN_URL . 'includes/css/wp-liveticker2.css', '', WPLT_VERSION, 'all' ); } add_action( 'wp_enqueue_scripts', 'wplt_enqueue_scripts' ); \ No newline at end of file diff --git a/package.json b/package.json index 98f3d0c..ac51f90 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "gulp-phpunit": "^0.24.1", "gulp-phpcs": "^2.1.0", "gulp-clean-css": "^3.9.0", - "child_process": "^1.0.2" + "child_process": "^1.0.2", + "yargs": "^10.0.3" } } diff --git a/styles/wp-liveticker2.min.css b/styles/wp-liveticker2.min.css deleted file mode 100644 index 8c88e61..0000000 --- a/styles/wp-liveticker2.min.css +++ /dev/null @@ -1 +0,0 @@ -ul.wplt2_ticker{list-style-type:none}li.wplt2_tick{background-color:#f5f5f5;margin:.1em;padding:.1em .3em}li.wplt2_tick p{margin:.3em}span.wplt2_tick_time{color:#002c58;font-size:.7em;font-style:italic}span.wplt2_tick_title{color:#002c58;font-weight:700;margin-left:.5em}p.wplt2_tick_content{margin-top:-.7em;text-indent:.5em}ul.wplt_2widget{list-style-type:none;margin-top:-.5em}ul.wplt2_widget li{text-align:left}span.wplt2_widget_time{font-size:.7em;font-style:italic}span.wplt2_widget_content{color:#002c58;text-indent:.2em}span.wplt2_widget_content_new{color:maroon;text-indent:.2em}p.wplt2_widget_link{text-align:right}