-
-
Save jacqinthebox/4dcdf8226168dcc786e8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var gulp = require('gulp'); | |
var browserSync = require('browser-sync'); | |
var uglify = require('gulp-uglify'); | |
var concat = require('gulp-concat'); | |
var notify = require('gulp-notify'); | |
var nodemon = require('gulp-nodemon'); | |
// we'd need a slight delay to reload browsers | |
// connected to browser-sync after restarting nodemon | |
var BROWSER_SYNC_RELOAD_DELAY = 500; | |
gulp.task('nodemon', function (cb) { | |
var called = false; | |
return nodemon({ | |
// nodemon our expressjs server | |
script: 'main.js', | |
// watch core server file(s) that require server restart on change | |
watch: ['main.js'] | |
}) | |
.on('start', function onStart() { | |
// ensure start only got called once | |
if (!called) { cb(); } | |
called = true; | |
}) | |
.on('restart', function onRestart() { | |
// reload connected browsers after a slight delay | |
setTimeout(function reload() { | |
browserSync.reload({ | |
stream: false | |
}); | |
}, BROWSER_SYNC_RELOAD_DELAY); | |
}); | |
}); | |
gulp.task('browser-sync', ['nodemon'], function () { | |
// for more browser-sync config options: http://www.browsersync.io/docs/options/ | |
browserSync({ | |
// informs browser-sync to proxy our expressjs app which would run at the following location | |
proxy: 'http://localhost:3000', | |
// informs browser-sync to use the following port for the proxied app | |
// notice that the default port is 3000, which would clash with our expressjs | |
port: 7000 | |
}); | |
}); | |
gulp.task('js', function () { | |
return gulp.src('app/js/*.js') | |
// do stuff to JavaScript files | |
.pipe(concat('plugin.min.js')) | |
.pipe(uglify()) | |
.pipe(gulp.dest('app/dist')) | |
.pipe(notify({ message: 'Finished minifying JavaScript'})); | |
}); | |
gulp.task('css', function () { | |
return gulp.src('app/**/*.css') | |
.pipe(browserSync.reload({ stream: true })); | |
}) | |
gulp.task('bs-reload', function () { | |
browserSync.reload(); | |
}); | |
gulp.task('serve', ['browser-sync'], function () { | |
gulp.watch('app/**/*.js', ['js', browserSync.reload]); | |
gulp.watch('app/**/*.css', ['css']); | |
gulp.watch('app/**/*.html', ['bs-reload']); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment