Scaffolded a new project with Yeoman Gulp-Angular.
I understand the premise of BrowserSync, but frankly I cannot comprehend how anyone tolerates having their network requests flooded by this:

I would like to remove BrowserSync from my project immediately.
How does one correct the following code in order to gulp serve and perform the same functionality of previewing the non-minified src files, but WITHOUT BrowserSync?
Here's my current gulp/server.js, the default generated by gulp-angular:
'use strict';
var gulp = require('gulp');
var browserSync = require('browser-sync');
var browserSyncSpa = require('browser-sync-spa');
var util = require('util');
var middleware = require('./proxy');
module.exports = function(options) {
  function browserSyncInit(baseDir, browser) {
    browser = browser === undefined ? 'default' : browser;
    var routes = null;
    if(baseDir === options.src || (util.isArray(baseDir) && baseDir.indexOf(options.src) !== -1)) {
      routes = {
        '/bower_components': 'bower_components'
      };
    }
    var server = {
      baseDir: baseDir,
      routes: routes
    };
    if(middleware.length > 0) {
      server.middleware = middleware;
    }
    browserSync.instance = browserSync.init({
      startPath: '/',
      server: server,
      browser: browser,
      online: false,
      notify: false,
      open: false,
      ui: false
    });
  }
  browserSync.use(browserSyncSpa({
    selector: '[ng-app]'// Only needed for angular apps
  }));
  gulp.task('serve', ['watch'], function () {
    browserSyncInit([options.tmp + '/serve', options.src]);
  });
  gulp.task('serve:dist', ['build'], function () {
    browserSyncInit(options.dist);
  });
  gulp.task('serve:e2e', ['inject'], function () {
    browserSyncInit([options.tmp + '/serve', options.src], []);
  });
  gulp.task('serve:e2e-dist', ['build'], function () {
    browserSyncInit(options.dist, []);
  });
};
And my current gulp/watch.js, the default generated by gulp-angular:
'use strict';
var gulp = require('gulp');
var browserSync = require('browser-sync');
function isOnlyChange(event) {
  return event.type === 'changed';
}
module.exports = function(options) {
  gulp.task('watch', ['markups', 'inject'], function () {
    gulp.watch([options.src + '/*.html', 'bower.json'], ['inject']);
    gulp.watch([
      options.src + '/app/**/*.css',
      options.src + '/app/**/*.less'
    ], function(event) {
      if(isOnlyChange(event)) {
        gulp.start('styles');
      } else {
        gulp.start('inject');
      }
    });
    gulp.watch(options.src + '/app/**/*.js', function(event) {
      if(isOnlyChange(event)) {
        gulp.start('scripts');
      } else {
        gulp.start('inject');
      }
    });
    gulp.watch(options.src + '/app/**/*.jade', ['markups']);
    gulp.watch(options.src + '/app/**/*.html', function(event) {
      browserSync.reload(event.path);
    });
  });
};
                Here's how to deprecate BrowserSync in favor of gulp-connect, a simple and stable Gulp plugin to run a webserver (with LiveReload).
New gulp/server.js:
'use strict';
var gulp = require('gulp');
var util = require('util');
var connect = require('gulp-connect');
module.exports = function(options) {
  function createServerTask(name, pre, root) {
    gulp.task(name, pre, function() {
      connect.server({
        root: root,
        port: 3000,
        debug: true,
        livereload: true
      });
    });
  }
  createServerTask( 'serve', ['watch'], [ options.tmp+'/serve', options.src, './' ]);
  createServerTask( 'serve:dist', ['build'], [ options.dist ]);
  createServerTask( 'serve:e2e', ['inject'], [ options.tmp+'/serve', options.src, './' ]);
  createServerTask( 'serve', ['watch'], [ options.tmp+'/serve', options.src, './' ]);
  createServerTask( 'serve:e2e-dist', ['build'], [ options.dist ]);
};
Then replace the BrowserSync reload in gulp/watch.js with:
gulp.src('./app/*.html')
  .pipe(connect.reload());
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With