Skip to content

Instantly share code, notes, and snippets.

@justalever
Created April 7, 2017 04:37
Show Gist options
  • Save justalever/5e0015631386b45fa184c3a36982f985 to your computer and use it in GitHub Desktop.
Save justalever/5e0015631386b45fa184c3a36982f985 to your computer and use it in GitHub Desktop.
A Gulp config for serving static sites.
'use strict';
var gulp = require('gulp'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
imagemin = require('gulp-imagemin'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
watch = require('gulp-watch'),
sourcemaps = require('gulp-sourcemaps'),
connect = require('gulp-connect');
var imgSrc = 'assets/images/originals/*';
var imgDest = 'assets/images/';
gulp.task('server', function() {
connect.server({
livereload: true
});
});
gulp.task('sass', function() {
return gulp.src('assets/sass/**/*.scss')
.pipe(sourcemaps.init())
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(sass({
outputStyle: 'compressed'
}).on('error', sass.logError))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./'))
.pipe(connect.reload());
});
gulp.task('images', function() {
return gulp.src(imgSrc, {
base: 'assets/images/originals'
})
.pipe(imagemin({
optimizationLevel: 3,
progressive: true,
interlaced: true
}))
.pipe(gulp.dest(imgDest));
});
var jsInput = {
js: 'assets/js/dev/**/*.js'
}
var jsOutput = 'assets/js/dist/';
gulp.task('js', function() {
return gulp.src(jsInput.js)
.pipe(concat('app.min.js'))
.pipe(uglify())
.pipe(gulp.dest('./assets/js/dist/'))
.pipe(connect.reload());
});
gulp.task('html', function() {
gulp.src('./*.html')
.pipe(connect.reload());
});
gulp.task('livereload', function() {
gulp.src(['./style.css', 'assets/js/dist/*.js'])
.pipe(connect.reload());
});
gulp.task('watch', function() {
gulp.watch('assets/sass/**/*.scss', ['sass']);
gulp.watch('assets/js/**/*.js', ['js']);
gulp.watch('./*.html', ['html']);
});
//gulp.task('default', ['styles', 'images']);
gulp.task('default', ['sass', 'server', 'watch', 'livereload', 'images', 'js']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment