|
//load plugins |
|
var gulp = require('gulp'), |
|
compass = require('gulp-compass'), |
|
autoprefixer = require('gulp-autoprefixer'), |
|
minifycss = require('gulp-minify-css'), |
|
//jshint = require('gulp-jshint'), |
|
uglify = require('gulp-uglify'), |
|
imagemin = require('gulp-imagemin'), |
|
rename = require('gulp-rename'), |
|
concat = require('gulp-concat'), |
|
notify = require('gulp-notify'), |
|
cache = require('gulp-cache'), |
|
refresh = require('gulp-livereload'), |
|
lr = require('tiny-lr'), |
|
server = lr(); |
|
|
|
//styles |
|
gulp.task('styles', function() { |
|
return gulp.src(['src/scss/**/*.scss']) |
|
.pipe(compass({ |
|
css: 'html/css', |
|
sass: 'src/scss', |
|
image: 'html/images' |
|
})) |
|
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) |
|
.pipe(gulp.dest('html/css')) |
|
.pipe(rename({ suffix: '.min' })) |
|
.pipe(minifycss()) |
|
.pipe(gulp.dest('html/css')) |
|
.pipe(refresh(server)); |
|
}); |
|
|
|
//scripts |
|
gulp.task('scripts', function() { |
|
return gulp.src('src/js/**/*.js') |
|
//.pipe(jshint('.jshintrc')) |
|
//.pipe(jshint.reporter('default')) |
|
.pipe(concat('main.js')) |
|
.pipe(gulp.dest('html/js')) |
|
.pipe(rename({ suffix: '.min' })) |
|
.pipe(uglify()) |
|
.pipe(gulp.dest('html/js')) |
|
.pipe(refresh(server)); |
|
}); |
|
|
|
//html |
|
gulp.task('html', function() { |
|
return gulp.src('templates/**/*.html') |
|
.pipe(refresh(server)); |
|
}); |
|
|
|
//images |
|
gulp.task('images', function() { |
|
return gulp.src('html/images/**/*') |
|
.pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))) |
|
.pipe(refresh(server)) |
|
.pipe(gulp.dest('html/images')); |
|
}); |
|
|
|
//default task |
|
gulp.task('default', [], function() { |
|
gulp.run('styles', 'scripts' ); //, 'images'); |
|
}); |
|
|
|
gulp.task('livereload', function(){ |
|
server.listen(35729, function(err){ |
|
if(err) return console.log(err); |
|
}); |
|
}); |
|
|
|
//watch |
|
gulp.task('live', function() { |
|
gulp.run('livereload', 'styles'); |
|
|
|
//watch .scss files |
|
gulp.watch('src/scss/**/*.scss', function(event) { |
|
gulp.run('styles'); |
|
}); |
|
|
|
//watch .js files |
|
gulp.watch('src/js/**/*.js', function(event) { |
|
gulp.run('scripts'); |
|
}); |
|
|
|
//watch image files |
|
//gulp.watch('html/images/**/*', function(event) { |
|
// console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); |
|
// gulp.run('images'); |
|
//}); |
|
|
|
//watch template files |
|
gulp.watch('templates/**/*.html', function(event) { |
|
gulp.run('html'); |
|
}); |
|
}); |
For anyone who downloads gulp.js (#2), remember to rename it to gulpfile.js otherwise Gulp won't run.