我试图让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)
答案 0 :(得分:1)
以下是基于connect
服务器以及connect-livereload
和gulp-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());
});