【问题标题】:How can I do to reload a symfony2 server with gulp?如何使用 gulp 重新加载 symfony2 服务器?
【发布时间】:2015-08-02 03:38:16
【问题描述】:

当我使用 gulp 进行一些更改时,我想自动重新加载我的服务器 symfony2 以实时查看我的 html 页面上的更改,

案例一:

例如:

  1. 启动我的 symfony2 服务器php app/console server:run
  2. 启动我的 gulp 文件 gulp 并部署任务监视,专注于重新加载代码上的每个更改

案例 B:

例如

  1. 为我的 gulp 文件加注星标gulp,在这种情况下,从我的 gulp 文件设置 symfony2 服务器,并在我调用命令 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 );

那么我不知道如何进行正确的设置。

任何机构都可以帮助我进行正确的设置或向我展示正确的方法吗?

【问题讨论】:

    标签: php symfony gulp gulp-watch browser-sync


    【解决方案1】:

    经过一些尝试后我得到了它,所以以下是检测到某些更改时自动刷新我的页面的代码

    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>
    

    来源:Integrating Grunt/Gulp and Livereload to existing Apache server serving PHP/Zend

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 2014-10-03
      • 2020-06-14
      • 1970-01-01
      • 2016-02-15
      • 2011-04-15
      • 2022-11-29
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多