Skip to content

Instantly share code, notes, and snippets.

@slezica
Created June 15, 2015 17:25
Show Gist options
  • Save slezica/b3e44300ab500ee8099f to your computer and use it in GitHub Desktop.
Save slezica/b3e44300ab500ee8099f to your computer and use it in GitHub Desktop.
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var concat = require('gulp-concat');
var watch = require('gulp-watch');
var rename = require('gulp-rename');
var gutil = require('gulp-util');
var minifyCss = require('gulp-minify-css');
var sass = require('gulp-sass');
var coffee = require('gulp-coffee');
var browserSync = require('browser-sync').create();
var paths = {
sass : ['./app/src/style.scss'],
coffee: ['./app/src/**/*.coffee'],
html : ['./app/index.html', './app/src/**/*.html'],
js : ['./app/gen/app-full.js'],
css : ['./app/gen/*.css']
};
function compileCoffee(done) {
done = done || function() {};
console.log('done is', done)
return gulp.src(paths.coffee)
.pipe(plumber())
.pipe(coffee({ bare: false }))
.on('error', gutil.log)
.pipe(concat('app-full.js'))
.pipe(gulp.dest('./app/gen'))
.on('end', done);
}
function compileSass(done) {
done = done || function() {};
return gulp.src(paths.sass)
.pipe(plumber())
.pipe(sass({ errLogToConsole: true }))
.pipe(gulp.dest('./app/gen/'))
.pipe(minifyCss({ keepSpecialComments: 0 }))
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./app/gen/'))
.on('end', done);
}
gulp.task('default', ['sass', 'coffee']);
gulp.task('coffee', function(done) {
compileCoffee(done);
})
gulp.task('sass', function(done) {
compileSass(done);
});
gulp.task('serve', function() {
browserSync.init({ server: { baseDir: "./app" } });
watch(paths.sass, function() { compileSass() });
watch(paths.coffee, function() { compileCoffee() });
watch([].concat(paths.js, paths.css, paths.html), browserSync.reload);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment