自動監測文件變化且免F5刷新頁面:HeTry-Grunt-LiveReload

jopen 9年前發布 | 16K 次閱讀 前端技術 HeTry-Grunt-LiveReload

HeTry-Grunt-LiveReload

苦B的前端每次在制作和修改頁面時,都有一個特定的三部曲:coding-save-F5。很多時候都希望自己一改東西,頁面就能立刻顯示,免F5手動刷新,而本項目就是為了解決這個問題。

本項目是“自動監測文件變化且免F5刷新頁面”的Grunt解決方案。

使用

下載完成之后,首先安裝模塊:

npm install

然后再運行:

grunt

瀏覽器訪問:http://localhost:8000/

接下來見證奇跡的時候來了!

隨意修改www-root目錄中的index.html文件內容,然后看看頁面,是否發現神奇的事情已經發生了呢?

代碼說明

各插件的使用請參考其官方文檔的說明。

在本示例中,我們設置了web服務器的根目錄為./www-root,并且設置了這個目錄下的html文件(不包括子目錄的html文件)一旦發生了變化,就會自動重載頁面。

如何做到的

難點一:如何知道文件發生了變化

Grunt團隊官方提供了一個插件:grunt-contrib-watch,它可用于監聽文件或文件夾新增、修改和刪除變化。

難點二:如何免F5刷新

使用http://livereload.com/提供的方案,在需要自動重刷的頁面加入以下代碼,然后安裝瀏覽器插件,具體可參考官網文檔。

<script src="http://127.0.0.1:35729/livereload.js?snipver=1" type="text/javascript"></script>

當然,這比較麻煩,不可能每個頁面都手動加入那陀代碼,然后還要安裝個瀏覽器插件的,有這么麻煩還不如手動F5得了。因此我們會引入一個中間件,也是grunt插件:connect-livereload來幫我們處理這些事情。它做的事情就是配合grunt-contrib-connect創建的 web服務器,在返回頁面之前,自動幫我們加上上面的那陀代碼,并且不用再安裝瀏覽器插件,它就會自動重新加載了。

難點三:如何創建本地web服務器

Grunt團隊官方提供了一個插件:grunt-contrib-connect,它創建一個本地web服務器。

所需插件

grunt

推薦0.4.1版本及以上

grunt-contrib-watch

用于監聽文件或文件夾新增、修改和刪除變化。

Run predefined tasks whenever watched file patterns are added, changed or deleted.

grunt-contrib-connect

用于創建一個本地web服務器。

Start a connect web server

connect-livereload

一個中間件,用于在瀏覽器請求的響應中增加livereload腳本代碼。

connect middleware for adding the livereload script to the response. no browser plugin is needed. if you are happy with a browser plugin, then you don't need this middleware.

項目主頁:http://www.baiduhome.net/lib/view/home/1446709881076

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!