Skip to content

Instantly share code, notes, and snippets.

@nikola-wd
Created September 16, 2015 13:28
Show Gist options
  • Save nikola-wd/874bccfe6ccb7b4562af to your computer and use it in GitHub Desktop.
Save nikola-wd/874bccfe6ccb7b4562af to your computer and use it in GitHub Desktop.
/* require */
var gulp = require('gulp'),
browserSync = require('browser-sync'),
reload = browserSync.reload,
sass = require('gulp-ruby-sass'),
plumber = require('gulp-plumber'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify'),
minifyCss = require('gulp-minify-css'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
autoprefixer = require('gulp-autoprefixer');
/* SASS tasks */
gulp.task('sass', function () {
return sass('sass/')
.pipe(plumber())
.on('error', sass.logError)
.pipe(autoprefixer('last 3 versions'))
.pipe(gulp.dest(''))
.pipe(reload({stream:true}));
});
/* HTML tasks */
gulp.task('html', function() {
gulp.src('./**/*.html')
.pipe(reload({stream:true}));
});
/* JS tasks */
gulp.task('scripts', function() {
gulp.src('./js/**/*.js')
.pipe(reload({stream:true}));
});
/* browser-sync tasks - start the server */
gulp.task('browser-sync', function() {
browserSync({
server:{
baseDir: ""
}
});
});
/* watch tasks */
gulp.task('watch', function() {
gulp.watch('./sass/**/*.scss', ['sass']);
gulp.watch('./**/*.html', ['html']);
gulp.watch('./js/*.js', ['scripts']);
});
/* uglify js task */
gulp.task('uglify', function() {
gulp.src('./js/**/*.js')
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest('./js'));
});
/* minify css */
gulp.task('minify-css', function() {
return gulp.src('./*.css')
.pipe(rename({suffix: '.min'}))
.pipe(minifyCss())
.pipe(gulp.dest('./'));
});
/* compress images */
gulp.task('img-compress', function() {
return gulp.src('./img/*')
.pipe(imagemin({
progressive: true,
optimizationLevel: 4,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
}))
.pipe(gulp.dest('./img/img-min'));
});
/* default task - start server, autoprefix and compile sass, reload */
gulp.task('default', ['sass', 'scripts', 'html', 'browser-sync', 'watch']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment