我正在我創建的Docker容器內部運行基礎Vue.js Webpack模板(https://github.com/vuejs-templates/webpack/)的webpack/webpack-dev-server部分。該容器還包含vue CLI以創建新項目(如果需要,您可以在此獲取我的容器:https://hub.docker.com/r/ncevl/webpack-vue/)。Docker容器中的Vue.js Webpack模板:如何添加Webpack-Dev-Server --watch-poll標誌?
從webpack-simple模板移至此目錄後,熱重載不起作用。
一切都被使用的WebPack,簡單的模板,你可以克隆工作/看在這裏:https://github.com/vuejs-templates/webpack-simple
我能得到簡單的模板運行(與熱重載發揮預期)具有以下的WebPack開發服務器啓動命令:
webpack-dev-server --hot --inline --progress --host 0.0.0.0 --watch-poll
提到的WebPack模板的完整(不簡單)版本不會出現使用的WebPack-DEV-服務器啓動命令,而是出現使用額外的中間件參考在build/dev-server.js( https://github.com/vuejs-templates/webpack/blob/master/template/build/dev-server.js)和webpack dev配置。
由於--watch-poll是讓WDS熱重載功能在最後一個項目的Docker容器中工作的關鍵,我的想法是我需要做一些類似於webpack-hot-middleware但我沒有看到他們的文檔中的任何內容(在這裏:https://github.com/glenjamin/webpack-hot-middleware),談論改變爲基於輪詢的方法。
我不是100%確定輪詢標誌會做的伎倆,因爲我可以看到容器重新編譯我的來源,當我做出改變。如果手動刷新,我還可以在瀏覽器中看到更改。
還有什麼奇怪的是,如果我在瀏覽器中使用chrome開發工具檢查我的頁面,然後轉到網絡/ XHR,我可以看到瀏覽器實際上確實從webpack-dev-server接收信息,但在視覺上它確實不更新。
給我假設的WebSockets(或socket.io我認爲這是使用)以上的工作,瀏覽器和WDS所以也許這是一個瀏覽器緩存某種問題之間的溝通?
我在控制檯檢查,發現此故看上去像一個頭問題:
僅供參考來自該圖像的文本錯誤(使它更容易具有相同問題的人找到這篇文章)是:
EventSource無法加載http://__webpack_hmr/。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此,'http://0.0.0.0:8080'不允許訪問。
當使用webpack-simple Vue.js模板時,Hot-Reload/Hot Module Reload再次與這個相同的容器設置一起工作。
如果有人遇到了類似的話或對如何添加投票選項的任何想法,我想知道。我想我的替代方案會回滾到更基本的webpack配置,並重建那部分東西以使用傳統的webpack-dev-server/webpack配置,但給上述我不確定是否要解決它。
你救了我的天) –
活泉,感謝豎起大拇指@StepanYudin,打開了我的評論功能:) – Necevil
真棒..感謝所有這一切! – nateleavitt