這是一個邊緣案例,但它會有助於知道。使用webpack-dev-derver在客戶端監聽熱更新事件?
使用的WebPack-dev的服務器,以保持擴展代碼最新開發的延伸,這將是聽取有用的「webpackHotUpdate」
的Chrome擴展程序與內容的腳本經常有雙方的方程:
- 背景
- 注入的內容腳本
使用的WebPack-DEV-服務器HMR背景PA ge保持同步就好了。但是,內容腳本需要重新加載擴展才能反映更改。我可以通過監聽來自hotEmmiter的「webpackHotUpdate」事件並請求重新加載來彌補這一點。目前我的工作方式非常糟糕,非常不可靠。
var hotEmitter = __webpack_require__(XX)
hotEmitter.on('webpackHotUpdate', function() {
console.log('Reloading Extension')
chrome.runtime.reload()
})
XX只是表示當前分配給發射器的編號。正如你可以想象,只要構建發生變化,它就會發生變化,所以這是對概念的一種非常暫時的證明。
我想我可以建立自己插座,但似乎有點小題大做,因爲事件已經被轉移,我只是想聽聽。
我剛剛越來越熟悉的WebPack生態系統,因此任何指導是非常讚賞。
聽起來很酷,我將嘗試了這一點。如果我理解正確,你的答案中的源代碼的最後一部分(if(module.hot){)開頭只是一個替代解決方案。 您可以分享關於如何從webpack dev服務器運行擴展的任何提示,因爲看起來localhost上的捆綁js文件會導致manifest.json中的內容腳本無效? – Steve06