Skip to content

Instantly share code, notes, and snippets.

@xt9
Created July 28, 2015 13:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xt9/c2e9c0607b5bc3fff035 to your computer and use it in GitHub Desktop.
Save xt9/c2e9c0607b5bc3fff035 to your computer and use it in GitHub Desktop.
var gulp = require('gulp');
var lr = require('gulp-livereload');
var express = require('express');
var sass = require('gulp-sass');
var notify = require('gulp-notify');
var plumber = require('gulp-plumber');
var uglify = require('gulp-uglify');
var minify = require('gulp-minify-css');
var concat = require('gulp-concat');
var bowerFiles = require('main-bower-files');
var debug = require('gulp-debug')
var EXPRESS_ROOT = __dirname + '/public';
gulp.task('express', function() {
var app = express();
app.use(require('connect-livereload')());
app.use(express.static(EXPRESS_ROOT));
app.listen(3000);
});
gulp.task('watch', function() {
lr.listen(35729);
/* Trigger the sass compiler when any sass file change */
gulp.watch('assets/sass/*.scss', ['build']);
/* Watch the public served files for changes */
gulp.watch('public/**/*.{html,css}', function(event) {
// `gulp.watch()` events provide an absolute path
// so we need to make it relative to the server root
var fileName = require('path').relative(EXPRESS_ROOT, event.path);
console.log('Html file changed');
lr.changed(fileName);
});
});
gulp.task('build', ['sass', 'bower'], function() {
/* Concat all css files in dist */
return gulp.src('dist/**/*.css')
.pipe(concat('master.css'))
.pipe(gulp.dest('public/css'));
/* Move the required fonts to the public folder */
return gulp.src('dist/**/*.{eot,svg,ttf,woff}')
.pipe(gulp.dest('public/font'));
});
/* Compiles project sass to css */
gulp.task('sass', function() {
return gulp.src('assets/sass/master.scss')
.pipe(plumber({
errorHandler: notify.onError('Error: <%= error.message %>')
}))
.pipe(sass().on('error', sass))
.pipe(minify({
compatibility: 'ie8'
}))
.pipe(notify('Compiled sass: <%= file.relative %>'))
.pipe(gulp.dest('dist'));
});
gulp.task('bower', function() {
/* Build bower components */
return gulp.src(bowerFiles(), {
base: 'assets/bower_components'
})
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['watch'], function() {
console.log('Gulp up and running!');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment