var gulp = require('gulp'); var browserSync = require('browser-sync'); var autoprefixer = require('gulp-autoprefixer'); var csscomb = require('gulp-csscomb'); var cssnano = require('gulp-cssnano'); var notify = require('gulp-notify'); var plumber = require('gulp-plumber'); var rename = require('gulp-rename'); var sass = require('gulp-sass'); var sourcemaps = require('gulp-sourcemaps'); var onError = function(err) { notify.onError({ title: "Error", message: "<%= error %>", })(err); this.emit('end'); }; var plumberOptions = { errorHandler: onError, }; var postCSSOptions = require('./config.postcss.json'); var autoprefixerOptions = postCSSOptions.autoprefixer; gulp.task('sass', function() { return gulp.src('_sass/screen.scss') .pipe(plumber(plumberOptions)) .pipe(sourcemaps.init()) .pipe(sass()) .pipe(autoprefixer(autoprefixerOptions)) .pipe(sourcemaps.write('./')) .pipe(gulp.dest('css')); }); gulp.task('dist:css', function() { return gulp.src('_sass/hamburgers/hamburgers.scss') .pipe(sass()) .pipe(autoprefixer(autoprefixerOptions)) .pipe(gulp.dest('dist')) .pipe(csscomb('.csscomb.dist.json')) .pipe(cssnano()) .pipe(rename('hamburgers.min.css')) .pipe(gulp.dest('dist')); }); gulp.task('watch', function() { var browserSyncConfig = require('./bs-config.js'); browserSync.init(browserSyncConfig); gulp.watch('_sass/**/*.scss', ['sass']); }); gulp.task('build', ['sass']); gulp.task('dist', ['dist:css']); gulp.task('default', ['build', 'watch']);