Gulp-webapp executando o BrowserSync e PHP
Meu principal objetivo aqui é adaptar ogulp-webapp fluxo de trabalho de desenvolvimento para executar o PHP.
Especificamente, eu quero poder usargulp-php-connect
comvários diretórios base (para o CSS compilado do Sass) erotas (para dependências do Bower), se isso for possível.
Sou capaz de rodar PHP com Gulp usando ogulp-connect-php plugin, assim:
gulp.task('connect-php', function() {
connectPHP.server({
hostname: '0.0.0.0',
bin: '/Applications/MAMP/bin/php/php5.5.3/bin/php',
ini: '/Applications/MAMP/bin/php/php5.5.3/conf/php.ini',
port: 8000,
base: 'dev'
});
});
No entanto, gostaria de aproveitar a arquitetura de fluxo de trabalho de desenvolvimento excelente, mas bastante complicada do gulp-webapp, que se baseia no compilador BrowserSync, Sass (compila em um arquivo .css em uma pasta .tmp, para desenvolvimento), no prefixo automático e usa vários outros plugins úteis.
Aqui está a parte que eu gostaria de adaptar para usargulp-connect-php
ou qualquer outro PHP:
gulp.task('serve', ['styles'],function () {
browserSync({
notify: false,
port: 9000,
server: {
baseDir: ['.tmp', 'app'],
routes: {
'/bower_components': 'bower_components'
}
}
});
// watch for changes
gulp.watch([
'app/*.html',
'.tmp/styles/**/*.css',
'app/scripts/**/*.js',
'app/images/**/*'
]).on('change', reload);
gulp.watch('app/styles/**/*.scss', ['styles', reload]);
gulp.watch('bower.json', ['wiredep', 'fonts', reload]);
});
O BrowserSync possui uma opção de proxy, que permite executá-lo comgulp-connect-php
servidor, o que é incrível. Mas eu precisogulp-connect-php
usar vários diretórios e rotas base, comoBrowserSync faz.
Até agora, eu vim com isso:
gulp.task('serve-php', ['styles','connect-php'],function () {
browserSync({
proxy: "localhost:8000"
});
// watch for changes
gulp.watch([
'app/*.php',
'app/styles/**/*.css',
'app/scripts/**/*.js',
'app/images/**/*'
]).on('change', reload);
gulp.watch('app/styles/**/*.scss', ['styles, reload]);
gulp.watch('bower.json', ['wiredep', 'fonts', reload]);
});
Para corrigir temporariamente ovários diretórios base problema, eu ajustei ostyles
tarefa para armazenar o .css compilado para/app
ao invés de.tmp/
. Eu preferiria tê-lo em uma pasta temporária, porque não preciso do arquivo .css compilado por aí com meus arquivos Sass.
Para orotas problema, estou tentando dizerwiredep
plugin para alterar um caminho, digamos, debower_components/jquery/dist/jquery.js
para../bower_components/jquery/dist/jquery.js
, sem sucesso.
Tudo o que pude fazer foi renomear manualmente os caminhos no index.php, e ele ainda não funciona. Ao executargulp serve
Eu recebo:
/bower_components/jquery/dist/modernizr.js - No such file or directory
... mesmo que eu mudei o caminho em index.html para../bower_components/jquery/dist/jquery.js
.
Eu acredito que isso não funciona porque ogulp-connect-php
o servidor não pode ver o que está fora da pasta base.
Estou tentando coisas diferentes e, apesar de ter sido bastante vago no título desse segmento, acho que a solução mais limpa seria executar vários diretórios e rotas base comgulp-connect-php
, mas não sei se isso é possível.