2015-04-01 3 views
0

Я использую Gulp + BrowserSync, и я пытаюсь перезагрузить свой сайт разработки, когда в мои HTML-файлы внесены изменения, но я не могу заставить его работать.BrowserSync: перезагрузите HTML на смену

У меня нет ошибок в командной строке, моя страница, похоже, перезагружается, но изменения, которые я сделал, не отображаются в браузере, если я не покинул задачу gulp и не запустил ее снова.

Это моя текущая настройка:

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var swig = require('gulp-swig'); 
var browserSync = require('browser-sync'); 
var reload = browserSync.reload; 

gulp.task('serve', function() { 
    browserSync({ 
    server: { 
     baseDir: './Build' 
    } 
    }); 
}); 

gulp.task('templates', function() { 
    return gulp.src('./src/*.html') 
    .pipe(swig()) 
    .pipe(gulp.dest('./Build')) 
    .pipe(reload({stream: true})) 
}); 

// Default task 
gulp.task('default', ['serve', 'templates', 'sass', 'js'], function() { 
    gulp.watch('./src/*.html', ['templates']); 
    gulp.watch(['./src/scss/*.scss', './src/scss/**/*.scss'], ['sass']); 
    gulp.watch('./src/js/*.js', ['js']); 
}); 

Любая помощь с этим ценится. Заранее спасибо!

ответ

2

Проблема в этой настройке, похоже, является swig. Когда вы проверяете файлы в ./Build, они не изменились, поэтому браузер правильно загружает файлы. Но свинг не получает изменений. Отключение функции кэширования кэширования должно быть устранено:

gulp.task('templates', function() { 
    return gulp.src('./src/*.html') 
    .pipe(swig({ 
     defaults: { cache: false } 
    })) 
    .pipe(gulp.dest('./Build')) 
    .pipe(reload({stream: true})); 
}); 
+0

Это убило меня. Установка кеша в false работает. Благодарю. – user1464317

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