Gulp-Connect-Php + browserSync + Gulp-Connect problema de dirección en uso

Necesito la capacidad de usar browserSync con soporte para php y algunas reescrituras de URL específicas. Se me ocurrió browserSync con paquetes Gulp-Connect-Php más Gulp-Connect + modrewrite. Aquí está mi configuración:

var  
browserSync  = require('browser-sync'),  
phpconnect   = require('gulp-connect-php'),
connect      = require('gulp-connect'),
modrewrite   = require('connect-modrewrite'),

phpconnect.server({base:'dist/',port: 8010}, function (){
  connect.server({
    port: 8001,
    middleware: function() {
        return [
            modrewrite([
                '^/admin/(.*) - [L]',
                '^([^.]*|.*?\.php)$ http://localhost:8010$1 [P,NC]'
            ])
        ];
    }
 })

 browserSync({
   injectChanges: true,
   proxy: '127.0.0.1:8010'
 });

})

Esto funciona bien y exactamente como lo necesito. El siguiente problema ocurre de vez en cuando cuando lo ejecuto:

[error] You tried to start Browsersync twice! To create multiple instances, use browserSync.create().init()
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::8001

En otras palabras, browserSync se inicia ANTES de gulp-connect y utiliza el puerto 8010 que debería ser usado por gulp-connect y gulp-connect no se inicia.

Instalé npmsleep paquete y agregó la siguiente línea antes de iniciar browserSync:

sleep.sleep(15)

en otras palabras, agregué un retraso de 15 segundos antes de iniciar browserSync. Funciona, pero apuesto a que hay una solución más elegante.

Por favor avise.

Respuestas a la pregunta(1)

Su respuesta a la pregunta