Skip to content

Instantly share code, notes, and snippets.

@richardprice
Forked from AndersNS/gulpfile.js
Last active August 29, 2015 14:16
Show Gist options
  • Save richardprice/798b856394dd2d02338b to your computer and use it in GitHub Desktop.
Save richardprice/798b856394dd2d02338b to your computer and use it in GitHub Desktop.
var gulp = require('gulp');
var browserify = require('browserify');
var source = require("vinyl-source-stream");
var babelify = require("babelify");
var watchify = require('watchify');
var gutil = require('gulp-util');
var browserSync = require('browser-sync');
var historyApiFallback = require('connect-history-api-fallback')
var opts = {
appJs: './app/js/app.js',
appFolder: './app',
jsOutfile: 'bundle.js',
jsOutFolder: './app/js'
};
var reload = browserSync.reload;
gulp.task('browserify', function(){
var bundler = watchify(browserify(opts.appJs, watchify.args));
bundler.transform(babelify);
bundler.on('update', rebundle);
function rebundle() {
return bundler.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source(opts.jsOutfile))
.pipe(gulp.dest(opts.jsOutFolder))
.pipe(reload({stream:true}));
}
return rebundle();
});
gulp.task('browser-sync', function() {
browserSync({
server: {
baseDir: opts.appFolder,
middleware: [historyApiFallback]
}
});
});
gulp.task('default', ['browser-sync', 'browserify'], function() {
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment