Вот пример моей сборки
https://github.com/mtvphnx/gulp-start. Там есть раздел для слежения за изменениями и перезагрузки.
Сам вотчер:
function watch() {
gulp.watch('путь', 'таск');
}
Командой start запускаем сборку, после того, как сборка прошла - запускается вотчер и сервер, если вотчер увидел изменения в папке, за которой мы следим - выполняется нужный таск, к примеру для минификации js.