var gulp = require('gulp'); var source = require('vinyl-source-stream'); var browserify = require('browserify'); var watchify = require('watchify'); gulp.task('setWatch', function() { global.isWatching = true; }); gulp.task('browserify', function() { var bundleMethod = global.isWatching ? watchify : browserify; var bundler = bundleMethod({ entries: ['./src/js/app.coffee'], extensions: ['coffee'] }); var bundle = function() { return bundler .bundle({debug: true}) .pipe(source('app.js')) .pipe(gulp.dest('./build/')) }; if(global.isWatching) { bundle.on('update', bundle); } return bundle(); }); gulp.task('watch', ['setWatch', 'browserify'], function() { // ... }); gulp.task('default', ['watch']);