Skip to content

Instantly share code, notes, and snippets.

@jorinvo
Created October 31, 2014 15:00
Show Gist options
  • Save jorinvo/8ac2e3c510361d7069af to your computer and use it in GitHub Desktop.
Save jorinvo/8ac2e3c510361d7069af to your computer and use it in GitHub Desktop.
gulp browserify and livereload
var gulp = require('gulp');
var gutil = require('gulp-util');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint');
var insert = require('gulp-insert');
var livereload = require('gulp-livereload');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var watchify = require('watchify');
var browserify = require('browserify');
var scripts = 'src/**/*.js';
gulp.task('default', ['watch']);
gulp.task('build', ['lint'], function() {
return browserify('./src/index.js').bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('createYourOwn.min.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(gulp.dest('.'));
});
gulp.task('watch', function() {
var liveReloadScript = 'document.write(\'<script src="http://localhost:35729/livereload.js" id="livereload"></script>\');';
watchify.args.debug = true;
var bundler = watchify(browserify('./src/index.js', watchify.args));
livereload.listen();
bundler.on('update', function() {
return bundler.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('createYourOwn.min.js'))
.pipe(buffer())
.pipe(insert.prepend(liveReloadScript))
.pipe(livereload())
.pipe(gulp.dest('.'));
});
});
gulp.task('lint', function() {
return gulp.src(scripts)
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'))
.pipe(jshint.reporter('fail'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment