Plato on Github
Report Home
sass.js
Maintainability
65.94
Lines of code
99
Difficulty
16.07
Estimated Errors
0.89
Function weight
By Complexity
By SLOC
'use strict'; var gulp = require('gulp'); var _ = require('lodash'); var path = require('path'); var $ = require('gulp-load-plugins')({ config: path.normalize(__dirname + '/../package.json') }); var config = { compile: './src/assets/sass/project.scss', name: 'project', srcs: './src/assets/sass/**/*', bundle: [], dest: { css: './build/assets/css', sass: './build/assets/sass' } }; var AUTOPREFIXER_BROWSERS = [ 'ie >= 10', 'ie_mob >= 10', 'ff >= 30', 'chrome >= 34', 'safari >= 7', 'opera >= 23', 'ios >= 7', 'android >= 4.4', 'bb >= 10' ]; function sass(options) { var settings = _.extend(config, options); var task = { desc: 'Compile and copy styles to build folder', subtasks: [{ name: 'compile', callback: compile },{ name: 'bundle', callback: bundle },{ name: 'copy', callback: copy }] }; //////////////// // Compile sass styles function compile() { return gulp.src(settings.compile) .pipe($.sass({ precision: 10, onError: console.error.bind(console, 'Sass error:') })) .on('error', console.error.bind(console)) .pipe($.autoprefixer({browsers: AUTOPREFIXER_BROWSERS})) .pipe($.rename(settings.name+'.css')) .pipe(gulp.dest(settings.dest.css)) .pipe($.if('*.css', $.csso())) .pipe($.rename(settings.name+'.min.css')) .pipe(gulp.dest(settings.dest.css)) .pipe($.size({title: 'styles:compile'})); } // Bundle sources and 3th libs function bundle() { if (!settings.bundle.length) { return gulp.src('./') .pipe($.size({title: 'styles:bundle'})); } settings.bundle.push(settings.dest.css+'/'+settings.name+'.css'); return gulp.src(settings.bundle) .pipe($.concat(settings.name+'.bundle.css')) .pipe($.if('*.css', $.csso())) .pipe($.rename(settings.name+'.bundle.css')) .pipe(gulp.dest(settings.dest.css)) .pipe($.size({title: 'styles:bundle'})); } // Copy sass sources function copy() { return gulp.src(settings.srcs) .pipe(gulp.dest(settings.dest.sass)) .pipe($.size({title: 'styles:copy'})); } //////////////// return task; } module.exports = sass;