I've setup gulp such that the browser reloads when I make changes. However, for css changes I want the browser to update without refresh, but I'm not sure how to do this. For my current setup I've used this tutorial:
var debug = require('gulp-debug'),
connect = require('gulp-connect'),
watch = require('gulp-watch'),
livereload = require('gulp-livereload');
gulp.task('webserver', function () {
connect.server({
livereload: true,
root: ['demo/']
});
});
gulp.task('livereload', function () {
gulp.src(['index.html', 'resources/**/*.js'])
.pipe(watch(['resources/**/*.html', 'index.html']))
//.pipe(debug({verbose: true}))
.pipe(connect.reload());
});
gulp.task('watch', function () {
livereload.listen();
gulp.watch('resources/**/*.scss', ['css']);
});
In my css task I also call
.pipe(livereload());
Any suggestions what I need to modify so css updates happen without a refresh ?
UPDATE: Here is my css task (a bit simplified):
gulp.task('css', function () {
...
return gulp.src('demo.scss')
.pipe($.sass({
errLogToConsole: true
}))
.pipe(gulp.dest('./target/')
.pipe(livereload());
});
I had the same problem with you, i solved it.
I found it's uncontrolled to use embedded livereload support in gulp-connect.
So, i tried to make livereload work independently.
Just setup your gulp-connect config without livereload and call livereload.listen with specified host option(at most time it should be 'localhost'). Like
And then watch files you want to detect. Like
You need to call
livereload.changed(files)
when change happens. To do that see gulp-watch doc.you might need a chrome extension for gulp-livereload