Gulp Livereload服务器无法启动

时间:2015-01-13 14:12:46

标签: gulp livereload gulp-livereload

我试图让gulp使用livereload。 Gulp无法控制网络服务器本身(实际的网络应用程序是一个php网站。当我在服务器上运行nmap时,我看不到livereload工作,并且chrome扩展指示同样的事情。

这是我的gulp任务:

gulp = require 'gulp'
{livereload} = require('gulp-load-plugins')()

gulp.task 'watch', ['styles'], ->
    livereload.listen()

    gulp.watch './public/include/less/**/*.less', ['styles']
    gulp.watch('./public/include/css/**/*.css').on('change', livereload.changed)

2 个答案:

答案 0 :(得分:1)

以下是基于connect服务器以及connect-livereloadgulp-livereload插件的simple and tested livereload solution


var gulp = require('gulp');
var connect = require('connect');
var connectLivereload = require('connect-livereload');
var opn = require('opn');
var gulpLivereload = require('gulp-livereload');

var config = {
    rootDir: __dirname,
    servingPort: 8080,

    // the files you want to watch for changes for live reload
    filesToWatch: ['*.{html,css,js}', '!Gulpfile.js']
}

// The default task - called when you run `gulp` from CLI
gulp.task('default', ['watch', 'serve']);

gulp.task('watch', ['connect'], function () {
  gulpLivereload.listen();
  gulp.watch(config.filesToWatch, function(file) {
    gulp.src(file.path)
      .pipe(gulpLivereload());
  });
});

gulp.task('serve', ['connect'], function () {
  return opn('http://localhost:' + config.servingPort);
});

gulp.task('connect', function(){
  return connect()
    .use(connectLivereload())
    .use(connect.static(config.rootDir))
    .listen(config.servingPort);
});


EDIT。

我错过了PHP部分。 我没有使用它,但这可能会帮助你: https://github.com/micahblu/gulp-connect-php

答案 1 :(得分:0)

为什么不使用浏览器同步?非常简单,也不那么复杂。

他是自动打开浏览器窗口,默认端口为3000。

这是一个简单的使用示例:

var gulp = require(''gulp),
    browserSync = require('browser-sync').create();


// Static server
gulp.task('browser-sync', function() {
    browserSync.init({
        server: {
            baseDir: "./flex_grid/"
        }
    });
});

这是一个简单的使用sass编译的例子:

var gulp         = require('gulp'),
    sass         = require('gulp-ruby-sass'),
    watch        = require('gulp-watch'),
    sourcemaps   = require('gulp-sourcemaps'),
    autoprefixer = require('gulp-autoprefixer');
    var browserSync = require('browser-sync').create();

gulp.task('default', ['serve']);


gulp.task('serve', ['sass'], function() {

    browserSync.init({
        server: "./flex_grid/"
    });

    gulp.watch("src/sass/*.scss", ['sass']);
    gulp.watch("flex_grid/*.html").on('change', browserSync.reload);
});


gulp.task('sass', function() {
    return sass(
       'src/sass/flex_grid.scss', {
        style: 'expanded',
        sourcemap: true
    }).on('error', function (err) {
        console.error('Error! ', err.message);
    })
    .pipe(autoprefixer({
        browsers: [ '> 0%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1' ],
        cascade: false
    }))
    .on('error', function (err) {
        console.error('Error! ', err.message);
    })
    .pipe(sourcemaps.write('.', {
        includeContent: false
    }))
    .on('error', function (err) {
        console.error('Error! ', err.message);
    })
    .pipe(gulp.dest('flex_grid'))
    .pipe(browserSync.stream());
});