Skip to content

Instantly share code, notes, and snippets.

@markbrown4
Last active August 29, 2015 14:00
Show Gist options
  • Save markbrown4/11359901 to your computer and use it in GitHub Desktop.
Save markbrown4/11359901 to your computer and use it in GitHub Desktop.
gulpfile for compiling coffee, sass/autoprefixer and handlebars.
var gulp = require('gulp');
var gutil = require('gulp-util');
var sass = require('gulp-sass');
var coffee = require('gulp-coffee');
var autoprefix = require('gulp-autoprefixer');
var handlebars = require('gulp-handlebars');
var defineModule = require('gulp-define-module');
var paths = {
scripts: {
src: 'assets/coffee/**/*.coffee',
dest: 'static/javascripts'
},
styles: {
src: 'assets/scss/**/*.scss',
dest: 'static/stylesheets'
},
templates: {
src: 'assets/templates/*.hbs',
dest: 'static/templates'
}
};
gulp.task('scripts', function() {
return gulp.src(paths.scripts.src)
.pipe(coffee({bare: true})
.on('error', gutil.log)
.on('error', gutil.beep)
).pipe(gulp.dest(paths.scripts.dest));
});
gulp.task('templates', function() {
return gulp.src(paths.templates.src)
.pipe(handlebars())
.pipe(defineModule('plain', {
wrapper: 'JST["<%= name %>"] = <%= handlebars %>'
}))
.pipe(gulp.dest(paths.templates.dest));
});
gulp.task('styles', function() {
return gulp.src(paths.styles.src)
.pipe(sass({errLogToConsole: true}))
.pipe(autoprefix(['last 2 versions', "ie 8"]))
.pipe(gulp.dest(paths.styles.dest));
});
gulp.task('watch', function() {
gulp.watch(paths.scripts.src, ['scripts']);
gulp.watch(paths.styles.src, ['styles']);
gulp.watch(paths.templates.src, ['templates']);
});
gulp.task('default', ['styles', 'scripts', 'templates', 'watch']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment