Я хотел бы автоматически перезагрузить мой сервер symfony2, чтобы увидеть в реальном времени изменения на моих HTML-страницах, когда я делаю некоторые изменения с gulp,
СЛУЧАЙ А:
например:
php app/console server:run
gulp
и развернуть задачу, которая сосредоточена на перезагрузке каждого изменения в кодеДЕЛО Б:
Например
gulp
, в этом случае настройте сервер symfony2 из моего файла gulp и запустите его, когда я вызову команду gulp, и запустим задачу наблюдения, которая сосредоточена на том, чтобы перенести каждое изменение в код.Тест 1:gulp-connect-php
var connect = require('gulp-connect-php');
gulp.task('connect', function() {
connect.server();
});
/** here, please don't say me use assets, is a special requirement and is an example*/
gulp.task('productstemplates',function(){
gulp.src( './appjs/products/templates/**/*.html')
.pipe( gulp.dest( './web/products/') )
.pipe( connect.reload() );
});
/** another task to watch the changes over css,less,html pages, php controllers ..*/
gulp.task('default', ['connect','another_task']);
Что терпит неудачу здесь, когда я запускаю эту простую конфигурацию, не работает, потому что это развертывает сервер поверх текущей папки, тогда сервер symfony2 не развертывается, и я получаю следующее
127.0.0.1:55669 [404]: / - No such file or directory
Тест 2: gulp-connect
'use strict';
var gulp = require('gulp');
var connect = require('gulp-connect');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var livereload = require('gulp-livereload');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
gulp.task('appjs',function(){
gulp.src( './appjs/app.js')
.pipe( gulp.dest('./web/') );
});
gulp.task('app-index',function(){
console.log("chaning something on index.html... ");
gulp.src( './appjs/index.html')
.pipe( gulp.dest( './web/') )
.pipe( connect.reload() );
});
gulp.task('watch',function(){
gulp.watch( ['./appjs/app.js'], ['appjs']);
gulp.watch( ['./appjs/index.html'], ['app-index']);
});
var tasks = [ 'appjs','app-index','watch'];
gulp.task('default',tasks );
Тест 3: livereload
'use strict';
var gulp = require('gulp');
var connect = require('gulp-connect');
var livereload = require('gulp-livereload');
gulp.task('appjs',function(){
gulp.src( './appjs/app.js')
.pipe( gulp.dest('./web/') );
});
gulp.task('app-index',function(){
console.log('chaning something on index.html...');
gulp.src( './appjs/index.html')
.pipe( gulp.dest( './web/') )
.pipe( livereload({ start: true }) );
});
gulp.task('watch',function(){
livereload.listen();
gulp.watch( ['./appjs/app.js'], ['appjs']);
gulp.watch( ['./appjs/index.html'], ['app-index']);
});
var tasks = [ 'appjs','app-index','watch'];
gulp.task('default',tasks );
тогда я не знаю, как выполнить настройку справа.
Любое тело может помочь мне сделать правильную настройку или показать мне правильный способ сделать это?
После нескольких попыток я получил его, поэтому ниже приведен код для автоматического обновления моих страниц при обнаружении каких-либо изменений.
1. Настройте свой файл gulp:
'use strict';
var gulp = require('gulp');
var livereload = require('gulp-livereload');
gulp.task('appjs',function(){
gulp.src( './appjs/app.js')
.pipe( gulp.dest('./web/') );
});
gulp.task('app-index',function(){
console.log('chaning something on index.html...');
gulp.src( './appjs/index.html')
.pipe( gulp.dest( './web/') )
.pipe( livereload({ start: true }) );
});
gulp.task('watch',function(){
livereload.listen();
gulp.watch( ['./appjs/app.js'], ['appjs']);
gulp.watch( ['./appjs/index.html'], ['app-index']);
});
var tasks = [ 'appjs','app-index','watch'];
gulp.task('default',tasks );
2. на странице, которую вы хотите сделать мониторинг изменений, вы должны поместить его:
Следующий код является режимом разработки.
<script type="text/javascript">document.write('<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"><\/script>')</script>
Источник: Интеграция Grunt / Gulp и Livereload на существующий сервер Apache, обслуживающий PHP / Zend
Других решений пока нет …