manshar/manshar

View on GitHub
web-client/gulp/tasks/production/styles.js

Summary

Maintainability
A
1 hr
Test Coverage
var gulp = require('gulp');

var assets = require('gulp-assets');
var autoprefixer = require('gulp-autoprefixer');
var filter = require('gulp-filter');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');

var config = require('../../config');


/**
 * Compiles SASS files to CSS and minify them and generate
 * sourcemaps files for them. This also autoprefix properties.
 */
gulp.task('sass:production', function() {
  // Don’t write sourcemaps of sourcemaps
  var cssFilter = filter(['*.css', '!*.map'], { restore: true });

  return gulp.src(config.sass.production.src)
      .pipe(sourcemaps.init())
      .pipe(sass(config.sass.production.options)
          .on('error', sass.logError))
      .pipe(autoprefixer(config.autoprefixer))
      .pipe(cssFilter)
      .pipe(sourcemaps.write('.', {
        includeContent: true,
        sourceRoot: 'app/styles'
      }))
      .pipe(cssFilter.restore)
      .pipe(gulp.dest(config.sass.production.dest));
});


/**
 * Copies the CSS files in the index to production.
 */
gulp.task('styles:production', ['sass:production'], function() {
  return gulp.src(config.index.production.src)
      .pipe(assets.css())
      .pipe(gulp.dest(config.index.production.dest));
});