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.