Il mio obiettivo principale qui è quello di adattare il flusso di lavoro di sviluppo gulp-webapp di Yeoman per eseguire PHP.Gulp-webapp con BrowserSync e PHP
In particolare, voglio essere in grado di utilizzare gulp-php-connect
con più directory di base (per il CSS compilato da Sass) e percorsi (per dipendenze Bower), se è ancora possibile.
Sono in grado di eseguire PHP con Gulp utilizzando il plugin gulp-connect-php, in questo modo:
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'
});
});
Tuttavia, vorrei approfittare di eccellente ma piuttosto intricata architettura del flusso di lavoro di sviluppo di gulp-webapp, che si affida a BrowserSync, al compilatore Sass (compila un file .css in una cartella .tmp, per lo sviluppo), al prefisso automatico e utilizza una serie di altri plugin utili.
Ecco la parte di esso che vorrei adattarsi a utilizzare gulp-connect-php
o qualsiasi altro 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]);
});
BrowserSync ha un'opzione proxy, che mi permette di correre con gulp-connect-php
server, che è piuttosto sorprendente . Ma ho bisogno di gulp-connect-php
per usare più directory di base e percorsi, come fa BrowserSync.
Finora mi è venuta in mente questo:
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]);
});
Per fissare temporaneamente il più directory di base problema, ho modificato il compito styles
quindi memorizza il .css compilato per /app
invece di .tmp/
. Preferirei averlo su una cartella temporanea, perché non ho bisogno di quel file .css compilato che gira lì con i miei file Sass.
Per la percorsi problema, sto cercando di dire wiredep
plugin per modificare un percorso, diciamo, da bower_components/jquery/dist/jquery.js
a ../bower_components/jquery/dist/jquery.js
, senza successo.
Tutto quello che potevo fare era rinominare manualmente i percorsi in index.php, e ancora non funziona. Quando si esegue gulp serve
ottengo:
/bower_components/jquery/dist/modernizr.js - No such file or directory
... anche se ho cambiato il percorso in index.html a ../bower_components/jquery/dist/jquery.js
.
Credo che non funzioni perché il server gulp-connect-php
non riesce a vedere cosa c'è fuori dalla cartella di base.
Sto provando cose diverse, e anche se sono stato piuttosto vago sul titolo di questo thread, penso che la soluzione più pulita sarebbe quella di eseguire più directory di base e percorsi con gulp-connect-php
, ma non so se questo è possibile.
Ciò sarebbe possibile utilizzando uno script del router? http://php.net/manual/en/features.commandline.webserver.php#example-403 –