Skip to content

Instantly share code, notes, and snippets.

@shanejones
Created January 13, 2016 08:53
Show Gist options
  • Save shanejones/79d8ab3985967067e16b to your computer and use it in GitHub Desktop.
Save shanejones/79d8ab3985967067e16b to your computer and use it in GitHub Desktop.
gulpfile Jan 2016
var gulp = require('gulp');
var autoprefixer = require('gulp-autoprefixer');
var coffee = require('gulp-coffee');
var concat = require('gulp-concat');
var imagemin = require('gulp-imagemin');
var livereload = require('gulp-livereload');
var rename = require('gulp-rename');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var gutil = require('gulp-util');
var watch = require('gulp-watch');
var pngquant = require('imagemin-pngquant');
gulp.task('sass', function() {
gulp.src('app/sass/**/*.scss')
.pipe(sass({outputStyle: 'compressed'}).on('error', gutil.log))
.pipe(rename({
suffix: ".min"
}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('dist/css'))
.pipe(livereload())
});
gulp.task('images', function () {
return gulp.
src('images/*')
.pipe(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
}).on('error', gutil.log))
.pipe(gulp.dest('dist/images'))
.pipe(livereload())
});
gulp.task('coffee', function() {
return gulp.src('app/js/**/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(gulp.dest('app/js'));
});
gulp.task('scripts', function() {
return gulp.src([
//'app/js/tools/jquery.js', // v1.11.3 - remember to update to which version you need.
'app/js/tools/jquery-2.js', // v2 - no support for IE8 and under
'app/js/tools/device.js', // makes it easy to write conditional CSS and/or JavaScript based on device and OS
'node_modules/respond.js/dest/respond.min.js', //Polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more
'app/js/main.js', // app specific js
'app/js/tools/orientation.js' // plugin created by Shane to force users to only view in a certain orientation.
])
.pipe(sourcemaps.init())
.pipe(concat('/all.js'))
.pipe(gulp.dest('dist/js/'))
.pipe(rename('all.min.js'))
.pipe(uglify())
.pipe(sourcemaps.write('maps/'))
.pipe(gulp.dest('dist/js/'))
.pipe(livereload())
});
/*
All of the general PHP files and other misc files for this app
*/
gulp.task('includes',function() {
gulp.src('app/includes/**/*')
.pipe(gulp.dest('dist/includes'))
.pipe(livereload());
});
gulp.task('classes',function() {
gulp.src('app/classes/*')
.pipe(gulp.dest('dist/classes'))
.pipe(livereload());
});
gulp.task('fonts',function() {
gulp.src('app/fonts/*')
.pipe(gulp.dest('dist/fonts'))
.pipe(livereload());
});
gulp.task('root',function() {
gulp.src('app/*.php')
.pipe(gulp.dest('dist/'))
.pipe(livereload());
});
gulp.task('htaccess',function() {
gulp.src('app/.htaccess')
.pipe(gulp.dest('dist/'))
.pipe(livereload());
});
gulp.task('default', ['sass', 'coffee', 'scripts', 'images', 'includes', 'classes', 'fonts', 'root', 'htaccess']);
gulp.task('watch', function() {
livereload.listen();
gulp.watch(['app/sass/**/*.scss'], ['sass']);
gulp.watch(['app/js/**/*.coffee'], ['coffee']);
gulp.watch(['app/js/**/*.js'], ['scripts']);
gulp.watch(['app/images/*.*'], ['images']);
gulp.watch(['app/includes/**/*'], ['includes']);
gulp.watch(['app/classes/*'], ['classes']);
gulp.watch(['app/fonts/*'], ['fonts']);
gulp.watch(['app/*.php'], ['root']);
gulp.watch(['app/.htaccess'], ['htaccess']);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment