2015-06-28 133 views
0

我按照下面所述進行了設置。一切正常,當我編輯HTML頁面時,gulp會觸發Chrome中的livereload。僅重新生成正在重新載入的HTML頁面

但是,我注意到它正在重新加載每一個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(); 

我可以看到有像gulp-newergulp-changed幾個插件...

但不知道如何,因爲我在我的styles.scss文件和//= include使用@import,使與gulp-include這些工作我的主script.js文件來連接這些特定的文件。

回答

0

需要插件僅修改過的文件,以livereload,所以使用它像下面......

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

知道通過瀏覽器或角度的模板完成緩存的模板緩存,你就需要另一個插件解決這個問題...

link to gulp-changed docs

+0

感謝您的迴應。我在本地安裝了gulp-change,然後嘗試了上述方法。可悲的是,它仍然無法正常工作。它要求我提供文件的目的地,但是即使我添加一個文件時也會一直問。我如何將目的地設置爲與來源相同?因爲他們沒有被編譯或任何東西,它只是簡單的HTML ...? ''[16:31:04]開始'html'... [16:31:04]'html'在8.37 ms後出錯 [16:31:04]插件'gulp-changed' 消息: 需要目標 ^ C''' – jx3

+0

只需將''。''添加爲dest。編輯答案,也給予了一口氣改變文檔鏈接 – harishr

+0

確定,即修復該問題...但吞嚥仍然重新加載所有的HTML文件:( – jx3