2016-09-05 4 views
0

Попытка настроить yo webapp для использования PHP-сервера вместо HTML.Настройка Yeoman Webapp с PHP

Я попытался выполнить этот ответ на примере без успеха. Gulp-webapp running BrowserSync and PHP

Я добавил gulp-connect-php в свой проект.

// Towards the top of my gulpfile, added: 
const connect = require('gulp-connect-php'); 

// Added the following task below: 

gulp.task('php-serve', ['styles', 'fonts'], function() { 
connect.server({ 
    port: 9001, 
    base: 'app', 
    open: false 
}); 

var proxy = httpProxy.createProxyServer({}); 

browserSync({ 
    notify: false, 
    port : 9000, 

    server: { 
     baseDir : ['.tmp', 'app'], 
     routes : { 
      '/bower_components': 'bower_components' 
     }, 
     middleware: function (req, res, next) { 
      var url = req.url; 

      if (!url.match(/^\/(styles|fonts|bower_components)\//)) { 
       proxy.web(req, res, { target: 'http://127.0.0.1:9001' }); 
      } else { 
       next(); 
      } 
     } 
    } 
}); 

// watch for changes 
gulp.watch([ 
    'app/*.html', 
    'app/*.php', 
    'app/scripts/**/*.js', 
    'app/images/**/*', 
    '.tmp/fonts/**/*' 
]).on('change', reload); 

gulp.watch('app/styles/**/*.scss', ['styles']); 
gulp.watch('app/fonts/**/*', ['fonts']); 
gulp.watch('bower.json', ['wiredep', 'fonts']); 
}); 

Ран gulp php-serve

PHP 5.5.36 Development Server started [etc…] 
Listening on http://127.0.0.1:9001 

Однако, не без ошибок:

ReferenceError: httpProxy is not defined 

Как это может быть решена? Я бы даже не возражал против использования MAMP, который у меня уже работает на порту 8888

ответ

2

Кажется, я пропустил жизненно важную часть установки http-proxy, который, как я думал, я установил раньше.

Вот идиот руководство о получении PHP для работы с наиболее популярными YEOMAN генератора, генератор WebAPP, с большими, благодаря TobyG

Установите http-proxy

npm install http-proxy --save 

Установка gulp-connect-php

npm install --save-dev gulp-connect-php 

Добавьте эти две функции в начало gulpfile.js

const connect = require('gulp-connect-php'); 
const httpProxy = require('http-proxy'); 

Добавить эту дополнительную задачу gulpfile.js

gulp.task('php-serve', ['styles', 'fonts'], function() { 
connect.server({ 
    port: 9001, 
    base: 'app', 
    open: false 
}); 

var proxy = httpProxy.createProxyServer({}); 

browserSync({ 
    notify: false, 
    port : 9000, 
    server: { 
     baseDir : ['.tmp', 'app'], 
     routes : { 
      '/bower_components': 'bower_components' 
     }, 
     middleware: function (req, res, next) { 
      var url = req.url; 

      if (!url.match(/^\/(styles|fonts|bower_components)\//)) { 
       proxy.web(req, res, { target: 'http://127.0.0.1:9001' }); 
      } else { 
       next(); 
      } 
     } 
    } 
}); 

// watch for changes 
gulp.watch([ 
    'app/*.html', 
    'app/*.php', 
    'app/scripts/**/*.js', 
    'app/images/**/*', 
    '.tmp/fonts/**/*' 
]).on('change', reload); 

gulp.watch('app/styles/**/*.scss', ['styles']); 
gulp.watch('app/fonts/**/*', ['fonts']); 
gulp.watch('bower.json', ['wiredep', 'fonts']); 
}); 
+0

Он работает. Мне пришлось изменить некоторые бит в задаче html в моем gulpfile: from 'return gulp.src ('app/*. Html')' to 'return gulp.src (['app/*. Html', 'app/* .php ']) ', чтобы скомпилировать js и css, вызванные из php-файлов в папку dist. –

+0

Также вы должны сделать то же самое изменение в задаче wiredep. –

+0

Если вы обновили генератор-webapp до версии 2.3.2, вам нужно будет изменить одну дополнительную строку в предлагаемом коде. Измените 'browserSync ({...' на 'browserSync.init ({' во избежание ошибки 'browserSync не является функцией ...' –

 Смежные вопросы

  • Нет связанных вопросов^_^