Skip to content

Instantly share code, notes, and snippets.

@julianbei
Forked from 3dd13/Gulpfile.js
Last active March 12, 2016 20:28
Show Gist options
  • Save julianbei/d75a3892466b670ee077 to your computer and use it in GitHub Desktop.
Save julianbei/d75a3892466b670ee077 to your computer and use it in GitHub Desktop.
Adapt the gulp hot reload file and apply to partial.js directory structure. (ignored public folder at the moment)
// NOTE: I previously suggested doing this through Grunt, but had plenty of problems with
// my set up. Grunt did some weird things with scope, and I ended up using nodemon. This
// setup is now using Gulp. It works exactly how I expect it to and is WAY more concise.
var gulp = require('gulp');
var spawn = require('child_process').spawn;
var node;
var config = require('./package.json');
/**
* $ gulp server
* description: launch the server. If there's a server already running, kill it.
*/
gulp.task('server', function () {
if (node) node.kill();
node = spawn('node', [config.main], { stdio: 'inherit' });
node.on('close', function (code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
});
/**
* $ gulp
* description: start the development environment
*/
gulp.task('default', function () {
gulp.run('server');
gulp.watch([`./${config.main}`, './lib/**/*.js'], function () {
gulp.run('server');
});
// Need to watch for sass changes too? Just add another watch call!
// no more messing around with grunt-concurrent or the like. Gulp is
// async by default.
});
// clean up if an error goes unhandled.
process.on('exit', function () {
if (node) node.kill();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment