// Require all those npm-modules var gulp = require('gulp'), sass = require('gulp-sass'), autoprefixer = require('gulp-autoprefixer'), cssmin = require('gulp-cssmin'), jshint = require('gulp-jshint'), uglify = require('gulp-uglify'), imagemin = require('gulp-imagemin'), pngcrush = require('imagemin-pngcrush'), rename = require('gulp-rename'), clean = require('gulp-rimraf'), concat = require('gulp-concat'), notify = require('gulp-notify'), cache = require('gulp-cache'), livereload = require('gulp-livereload'); // render scss gulp.task('styles', function() { gulp.src('./src/scss/main.scss') .pipe(sass({ style: 'expanded' })) .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) .pipe(gulp.dest('./css')) .pipe(rename({suffix: '.min'})) .pipe(cssmin()) .pipe(gulp.dest('./css')) .pipe(notify({ message: 'Styles task complete' })); }); // compress images gulp.task('images', function() { gulp.src('./src/img/*') .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))) .pipe(gulp.dest('./img/')) .pipe(notify({ message: 'Images task complete' })); }); // clean the folders gulp.task('clean', function() { gulp.src(['./css/*', './js/*', './img/*'], {read: false}) .pipe(clean()); }); // do the javascript-dance gulp.task('scripts', function() { gulp.src('./src/js/**/*.js') .pipe(concat('main.js')) .pipe(gulp.dest('./js')) .pipe(rename({suffix: '.min'})) .pipe(uglify()) .pipe(gulp.dest('./js')) .pipe(notify({ message: 'Scripts task complete' })); }); gulp.task('watch', function() { // Watch .scss files gulp.watch('src/scss/**/*.scss', ['styles']); // Watch .js files gulp.watch('src/js/**/*.js', ['scripts']); // Watch image files gulp.watch('src/img/**/*', ['images']); }); // default: gulp.task('default', ['clean'], function() { gulp.start('styles', 'scripts', 'images'); }); /* // // OLD STUFF // ---------------------- // sass + watch gulp.task('sass', function() { gulp.src('./scss/*.scss') .pipe(watch()) .pipe(sass()) .pipe(prefix("last 2 versions", "ie 9")) .pipe(cssmin()) .pipe(rename({suffix: ".min"})) .pipe(gulp.dest('./css')) }); // image gulp.task('img', function() { gulp.src('src/img/*') .pipe(imagemin({ progressive: true, svgoPlugins: [{removeViewBox: false}], use: [pngcrush()] })) .pipe(gulp.dest('./img/')) }); // finalize gulp.task('final', function() { gulp.src('./scss/*.scss') .pipe(sass()) .pipe(prefix("last 2 versions", "ie 9")) .pipe(gulp.dest('./css')) .pipe(rename({suffix: ".min"})) .pipe(cssmin()) .pipe(gulp.dest('./css')) gulp.src('src/img/*') .pipe(imagemin({ progressive: true, svgoPlugins: [{removeViewBox: false}], use: [pngcrush()] })) .pipe(gulp.dest('./img/')) }); // JS hint task gulp.task('jshint', function() { gulp.src('./scripts/*.js') .pipe(jshint()) .pipe(jshint.reporter('default')); }); */