熱模塊重載 (HMR) 在運行時自動更新瀏覽器中的模塊優(yōu)化開發(fā)體驗,無需刷新整個頁面。這意味著在您代碼小幅更改時可以保留應(yīng)用程序的狀態(tài)。Parcel 的 HMR 實現(xiàn)支持開箱即用的 JavaScript 和 CSS 資源。HMR 構(gòu)建在生產(chǎn)模式下時自動禁用。
保存文件時,Parcel 將重新編譯所更改的內(nèi)容,并將包含新代碼的更新發(fā)送到任何正在運行的客戶端。新的代碼會替換舊版本的代碼并執(zhí)行,其所有父模塊代碼也會重新執(zhí)行。你可以使用 module.hot API 對此過程進行 hook ,編寫這段代碼會在你處理模塊時或有新版本進入時通知您。類似項目 react-hot-loader 可以幫助你完成該過程,并通過 Parcel 實現(xiàn)開箱即用。
有兩種已知方法: module.hot.accept 和 module.hot.dispose 。你可以調(diào)用 module.hot.accept 并賦予一個回調(diào)函數(shù),該函數(shù)會在模塊或其他依賴項被更新時執(zhí)行。當(dāng)該模塊即將被替換時,module.hot.dispose 回調(diào)函數(shù)會被調(diào)用。
if (module.hot) {
module.hot.dispose(function() {
// 模塊即將被替換時
})
module.hot.accept(function() {
// 模塊或其依賴項之一剛剛更新時
})
}
每當(dāng) Parcel 遇到符合 node_module 模式且無法找到它的依賴項時,Parcel 會嘗試使用 yarn 或 npm 安裝此依賴項這取決于是否找到 yarn.lock 文件。這可以避免開發(fā)人員不得不退出 parcel 或打開多個終端窗口來安裝依賴。
這只會在 development 模式下觸發(fā)(使用 serve 或 watch),然而在生產(chǎn)模式是禁止的(使用build)這樣避免在部署的時候產(chǎn)生意想不到的副作用。
你可以禁止使用這個特性 --no-autoinstall。
一些文本編輯器和 IDE 均有安全寫入的功能,這基本上可以防止數(shù)據(jù)丟失,通過獲取文本的副本并在保存時對其進行重命名操作。
當(dāng)使用熱模塊重載 (HMR) 時,此功能會阻止文件更新的自動檢測,要禁用安全寫入,請使用下列提供的選項:
更多建議: