Skip to content

Instantly share code, notes, and snippets.

@johnstew
Created February 25, 2016 22:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save johnstew/89cf72febe6e4af18a85 to your computer and use it in GitHub Desktop.
Save johnstew/89cf72febe6e4af18a85 to your computer and use it in GitHub Desktop.
Gulp, Browserify, SASS
// jscs:disable
'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');
var connect = require('gulp-connect');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
var gutil = require('gulp-util');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var neat = require('node-neat').includePaths;
var bourbon = require('node-bourbon').includePaths;
var nodemon = require('gulp-nodemon');
var config = {
dev: {
sass: './src/sass/**/*.scss',
es6: './src/es6/',
server: './server.js'
},
prod: {
css: './public/css',
js: './public/js'
}
};
gulp.task('nodemon', function() {
nodemon({
script: config.dev.server,
ext: 'js',
watch: config.dev.server
});
});
gulp.task('sass', function() {
gulp.src(config.dev.sass)
.pipe(sass({
includePaths: [].concat(bourbon,neat)
}).on('error', sass.logError))
.pipe(gulp.dest(config.prod.css));
});
gulp.task('js', function() {
browserify({
entries: config.dev.es6 + 'main.js',
extensions: ['.js','.jsx','.es6'],
debug: true
})
.transform('babelify')
.bundle()
.on('error', function(e) {
gutil.log(gutil.colors.red('Browserify compile error:'),e.message);
})
.pipe(source('main.js'))
.pipe(gulp.dest(config.prod.js));
});
gulp.task('watch', function() {
watch(config.dev.sass, batch(function(events, done) {
gulp.start('sass', done);
}));
watch(config.dev.es6 + '**/*.*', batch(function(events, done) {
gulp.start('js', done);
}));
});
gulp.task('default', ['nodemon','js','watch']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment