UNPKG

cakephp-potion

Version:

CakePHP Potion - Painless Gulp for CakePHP

74 lines (60 loc) 1.93 kB
var gulp = require('gulp'); var Potion = require('cakephp-potion'); var $ = Potion.Plugins; var config = Potion.config; /* |---------------------------------------------------------------- | CSS File Concatenation |---------------------------------------------------------------- | | This task will concatenate and minify your style sheet files | in order, which provides a quick and simple way to reduce | the number of HTTP requests your application fires off. | */ Potion.extend('styles', function(styles, output, baseDir) { var paths = prepGulpPaths(styles, baseDir, output); new Potion.Task('styles', function() { return gulpTask.call(this, paths); }) .watch(paths.src.path) .ignore(paths.output.path); }); Potion.extend('stylesIn', function(baseDir, output) { var paths = prepGulpPaths('**/*.css', baseDir, output); new Potion.Task('stylesIn', function() { return gulpTask.call(this, paths); }) .watch(paths.src.path) .ignore(paths.output.path); }); /** * Trigger the Gulp task logic. * * @param {object} paths */ var gulpTask = function(paths) { this.log(paths.src, paths.output); return ( gulp .src(paths.src.path) .pipe($.if(config.sourcemaps, $.sourcemaps.init())) .pipe($.concat(paths.output.name)) .pipe($.if(config.production, $.minifyCss())) .pipe($.if(config.sourcemaps, $.sourcemaps.write('.'))) .pipe(gulp.dest(paths.output.baseDir)) .pipe(new Potion.Notification('Stylesheets Merged!')) ); }; /** * Prep the Gulp src and output paths. * * @param {string|array} src * @param {string|null} output * @return {object} */ var prepGulpPaths = function(src, baseDir, output) { return new Potion.GulpPaths() .src(src, baseDir || config.get('assets.css.folder')) .output(output || config.get('public.css.outputFolder'), 'all.css'); };