Gulp-webapp работает под управлением BrowserSync и PHP
Моя главная цель здесь состоит в том, чтобы адаптироватьГлоток-WebApp рабочий процесс разработки для запуска PHP.
В частности, я хочу иметь возможность использоватьgulp-php-connect
снесколько базовых каталогов (для скомпилированного CSS из Sass) имаршруты (для зависимостей Бауэра), если это вообще возможно.
Я могу запустить PHP с Gulp, используяпроглатывать-подключения-PHP плагин, вот так:
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'
});
});
Тем не менее, я хотел бы воспользоваться превосходной, но довольно запутанной архитектурой рабочих процессов разработки gulp-webapp, которая опирается на BrowserSync, компилятор Sass (компилируется в файл .css в папку .tmp для разработки), автоматический префикс и использует кучу других полезных плагинов.
Вот часть того, что я хотел бы адаптировать для использованияgulp-connect-php
или любой другой 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 имеет параметр прокси, который позволяет мне запускать его сgulp-connect-php
сервер, что довольно удивительно. Но мне нужноgulp-connect-php
это использовать несколько базовых каталогов и маршрутов, какBrowserSync делает.
До сих пор я придумал это:
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]);
});
Временно исправитьнесколько базовых каталогов вопрос, я подправилstyles
задача, поэтому он сохраняет скомпилированный .css в/app
вместо.tmp/
, Я бы предпочел, чтобы он был во временной папке, потому что мне не нужен этот скомпилированный файл .css, висящий там с моими файлами Sass.
Длямаршруты вопрос, я пытаюсь сказатьwiredep
плагин, чтобы изменить путь, скажем, изbower_components/jquery/dist/jquery.js
в../bower_components/jquery/dist/jquery.js
без успеха.
Все, что я мог сделать, это вручную переименовать пути в index.php, и это все еще не работает. При бегеgulp serve
Я получил:
/bower_components/jquery/dist/modernizr.js - No such file or directory
... хотя я изменил путь в index.html на../bower_components/jquery/dist/jquery.js
.
Я считаю, что это не работает, потому чтоgulp-connect-php
Сервер не может видеть, что находится за пределами базовой папки.
Я пробую разные вещи, и хотя я был довольно расплывчат в названии этого потока, я думаю, что самым чистым решением было бы запустить несколько базовых каталогов и маршрутов сgulp-connect-php
, но я не знаю, возможно ли это.