Problema no uso do Gulp-Connect-Php + browserSync + Gulp-Connect
Eu preciso da capacidade de usar o browserSync com suporte a php e algumas reescritas de URL específicas. Eu vim com o browserSync com os pacotes Gulp-Connect-Php mais o Gulp-Connect + modrewrite. Aqui está a minha configuração:
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'
});
})
Isso funciona bem e exatamente como eu preciso. O seguinte problema ocorre de tempos em tempos quando iniciá-lo:
[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
Em outras palavras, o browserSync inicia ANTES do gulp-connect e utiliza a porta 8010, que deve ser usada pelo gulp-connect e o gulp-connect falha ao iniciar.
Eu instalei o npmsleep
pacote e adicionou a seguinte linha antes de iniciar o browserSync:
sleep.sleep(15)
em outras palavras, adicionei um atraso de 15 segundos antes de iniciar o browserSync. Funciona, mas aposto que há uma solução mais elegante.
Por favor informar.