沒有 LiveReload 也過得很好
「雙螢幕 + FireGestures 搖擺手勢(按住滑鼠右鍵再按左鍵)重新載入網頁」 —— 至少比按 F5 快多了。
目前環境
Windows 7 的 Firefox 21 beta + LiveReload Firefox extension,
Ubuntu VM 的 Rails + guard-livereload。
我的 LiveReload 大概已經一兩年沒辦法用了,I Don't Know Why,最近被問到才重啟調查,發現在瀏覽器直接測試 WebSocket(可以用 WebSocket.org | Echo Test 測)是可以和 VM 裡的 LiveReload server 來往的,那八成是瀏覽器的擴充套件出狀況。
惱人的 LiveReload Firefox 擴充套件
LiveReload 官網提供的 2.0.8 版 xpi 因為還沒包含 Pull Request #8,所以應該是不堪用的,此外還有按鈕無法移除、連線錯誤沒有警告(有時甚至毫無反應)等煩人問題。
另一關鍵是沒有選項可以調整連線的 host 跟 port,預設是 127.0.0.1 和 35729,我 VM 裡的 server 就不是用這兩個,當然連不上。
註:LiveReload 現在的設計是 server 在頁面插入 livereload.js,讓 client 從中取得 host 和 port。 所以也許是我的 guard-livereload 版本太舊(0.3.1),或者頁面需要另做修改。
最後對策是改 xpi 內容,讓它讀取 Firefox 自訂選項
extensions.livereload.fc.
的 host
和 port
(fc 只是隨便定的名字),具體是在 global.js 的 beforeEnablingFirst
加入:
// Use custom preferences var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService); prefs = prefs.getBranch("extensions.livereload.fc."); if (prefs.getCharPref('host')) { this.host = prefs.getCharPref('host'); } if (prefs.getCharPref('port')) { this.port = prefs.getCharPref('port'); }