仅限已更改的livereload HTML页面

仅限已更改的livereload HTML页面,html,gulp,livereload,Html,Gulp,Livereload,我已经完成了如下所述的设置。一切正常,当我编辑HTML页面时,gulp会在Chrome中触发livereload 然而,我注意到它正在重新加载每个html页面。如何设置它,使其仅重新加载已更改的页面 // -------------------------------------------------------------- // HTML //--------------------------------------------------------------- gulp.task

我已经完成了如下所述的设置。一切正常,当我编辑HTML页面时,gulp会在Chrome中触发livereload

然而,我注意到它正在重新加载每个html页面。如何设置它,使其仅重新加载已更改的页面

// --------------------------------------------------------------
// HTML
//---------------------------------------------------------------

gulp.task('html', function() {
    gulp.src('./_themes/blank/**/*.html')
        .pipe(livereload());
});


// --------------------------------------------------------------
// Watch
//---------------------------------------------------------------

gulp.task('watch', function() {

    gulp.watch('./_themes/blank/ui/scss/*.scss', ['styles']);
    gulp.watch('./_themes/blank/js/*.js', ['scripts']);
    gulp.watch('./_themes/blank/**/*.html', ['html']);

});

gulp.task('default', ['styles', 'watch']);
gulp.task('default', ['scripts', 'watch']);
gulp.task('default', ['html', 'watch']);

livereload.listen();
我可以看到有一些插件,比如
gulpnewer
gulpchanged


但是我不知道如何使用
gulp include
,因为我在
样式中使用
@import

gulp.task('html', function() {
    gulp.src('./_themes/blank/**/*.html')
        .pipe(changed('.'))
        .pipe(livereload());
});
请注意由浏览器或angular的模板缓存完成的模板缓存,您需要另一个插件来解决该问题


感谢您的回复。我在本地安装了gulp changed,然后尝试了上述方法。遗憾的是,它仍然不起作用。它要求我为文件指定一个目的地,但即使我添加了一个目的地,它也会不断地询问。如何将目标设置为与源相同?因为它们没有被编译或其他任何东西,所以它只是简单的html<代码>[16:31:04]正在启动“html”。。。[16:31:04]“html”在8.37毫秒后出错[16:31:04]插件“gulp changed”消息中出现错误:dest required ^C
只需添加
作为dest。编辑了答案,也给出了吞咽改变的文档linkOK,解决了这个问题。。。但是gulp仍然在重新加载所有的html文件:(gulp已经更改了,但是提供了自定义比较功能,您可以编写自定义逻辑来进行比较,而不是基于时间,而是基于文件大小或md5哈希