Created
July 13, 2014 16:29
-
-
Save dstroot/22525ae6e26109d3fc9d to your computer and use it in GitHub Desktop.
Gulp, BrowserSync, Node, and Nodemon all working in harmony. ;)
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
/** | |
* World's simplest express server | |
* - used to serve index.html from /public | |
*/ | |
var express = require('express'); | |
var serveStatic = require('serve-static'); | |
var app = express(); | |
app.use(serveStatic(__dirname + '/public')); | |
app.listen(3000); | |
console.log('Express listening on port 3000'); |
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
/** | |
* Module Dependencies | |
*/ | |
var gulp = require('gulp'); | |
var browserSync = require('browser-sync'); | |
var reload = browserSync.reload; | |
var nodemon = require('gulp-nodemon'); | |
/** | |
* Gulp Tasks | |
*/ | |
gulp.task('browser-sync', ['nodemon'], function() { | |
browserSync({ | |
proxy: "localhost:3000", // local node app address | |
port: 5000, // use *different* port than above | |
notify: true | |
}); | |
}); | |
gulp.task('nodemon', function (cb) { | |
var called = false; | |
return nodemon({ | |
script: 'app.js', | |
ignore: [ | |
'gulpfile.js', | |
'node_modules/' | |
] | |
}) | |
.on('start', function () { | |
if (!called) { | |
called = true; | |
cb(); | |
} | |
}) | |
.on('restart', function () { | |
setTimeout(function () { | |
reload({ stream: false }); | |
}, 1000); | |
}); | |
}); | |
gulp.task('default', ['browser-sync'], function () { | |
gulp.watch(['public/*.html'], reload); | |
}); |
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
{ | |
"private": true, | |
"dependencies": { | |
"express": "^4.5.1", | |
"serve-static": "^1.3.0" | |
}, | |
"devDependencies": { | |
"browser-sync": "^1.2.1", | |
"gulp": "^3.8.6", | |
"gulp-nodemon": "^1.0.4" | |
} | |
} |
This did the trick for me on gulp 4.0.2:
'use strict';
var gulp = require('gulp');
var browserSync = require('browser-sync');
var nodemon = require('gulp-nodemon');
gulp.task('nodemon', function (cb) {
var started = false;
return nodemon({
script: 'server.js',
ignore: [
'gulpfile.js',
'node_modules/'
]
}).on('start', function () {
if (!started) {
cb();
started = true;
}
});
});
gulp.task('browser-sync', gulp.series('nodemon', function() {
browserSync.init(null, {
proxy: "http://localhost:3000",
files: ["public/*.html"],
port: 5000,
});
}));
gulp.task('default', gulp.series('browser-sync', function () {
}));
Code adapted from: https://gist.github.com/sogko/b53d33d4f3b40d3b4b2e and @alaksandarjesus
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
`
/**
*/
var gulp = require('gulp');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var nodemon = require('gulp-nodemon');
/**
*/
gulp.task('nodemon', function (cb) {
var called = false;
return nodemon({
script: './bin/www',
ignore: [
'gulpfile.js',
'node_modules/'
]
})
.on('start', function () {
if (!called) {
called = true;
cb();
}
})
.on('restart', function () {
setTimeout(function () {
reload({ stream: false });
}, 1000);
});
});
gulp.task('browser-sync', gulp.series('nodemon', function() {
browserSync({
proxy: "localhost:3000", // local node app address
port: 5000, // use different port than above
notify: true
});
}));
gulp.task('default', gulp.series('browser-sync', function () {
gulp.watch(['public/*.html'], reload);
}));
`
I dont know how to format the code here. This works in gulp 4.0 and up