摘要:如果檢測(cè)到文件變化,會(huì)重新構(gòu)建被改變的文件。另外,被改變的模塊被發(fā)送到,用來(lái)做熱替換。首先檢查,被更新的模塊能否指是否被跟蹤詢問(wèn)實(shí)例是否有更新。如果有更新,實(shí)例會(huì)異步下載更新代碼,并通知已經(jīng)準(zhǔn)備就緒。參考資料官方文檔官方同事的總結(jié)
Hot Module Replacement是webpack下實(shí)現(xiàn)熱刷新的模塊,由于webpack的坑爹文檔,看了很久才搞明白這東西怎么用。
Webapck的熱刷新用起來(lái)很爽,連續(xù)寫(xiě)一個(gè)下午,一次刷新都不用,體驗(yàn)棒棒噠。
實(shí)現(xiàn)熱刷新的主要是HOT MODULE REPLACEMENT(HMR)模塊
官方文檔很坑爹,反正我是看的懵懵懂懂的。官方wiki講的稍微好些,不過(guò)原理多一些
How does it works?Webpacks adds a small HMR runtime to the bundle, during the build process, that runs inside your app. When the build completes, Webpack does not exit but stays active, watching the source files for changes. If Webpack detects a source file change, it rebuilds only the changed module(s). Depending on the settings, Webpack will either send a signal to the HMR runtime, or the HMR runtime will poll webpack for changes. Either way, the changed module is sent to the HMR runtime which then tries to apply the hot update. First it checks whether the updated module can self-accept. If not, it checks those modules that have required the updated module. If these too do not accept the update, it bubbles up another level, to the modules that required the modules that required the changed module. This bubbling-up will continue until either the update is accepted, or the app entry point is reached, in which case the hot update fails. 在構(gòu)建時(shí),webapck添加一個(gè)小的HMR實(shí)例到bundle內(nèi)部,當(dāng)構(gòu)建完成后,webpack不再存在但保持監(jiān)控源文件。如果webpack檢測(cè)到文件變化,會(huì)重新構(gòu)建被改變的文件。根據(jù)設(shè)置,webpack要么發(fā)送一個(gè)信號(hào)給HMR實(shí)例,要么檢查webpack的變化。另外,被改變的模塊被發(fā)送到HMR runtime,用來(lái)做熱替換。首先檢查,被更新的模塊能否self-accept【指是否被HMR跟蹤】?From the app view
The app code asks the HMR runtime to check for updates. The HMR runtime downloads the updates (async) and tells the app code that an update is available. The app code asks the HMR runtime to apply updates. The HMR runtime applies the update (sync). The app code may or may not require user interaction in this process (you decide). app詢問(wèn)HMR實(shí)例是否有更新。如果有更新,HMR實(shí)例會(huì)異步下載更新代碼,并通知app已經(jīng)準(zhǔn)備就緒。app源碼請(qǐng)求HMR實(shí)例開(kāi)始更新。HMR實(shí)例同步更新。app可以選擇是否和用戶交互。From the compiler(webpack) view
待續(xù)。。。
參考資料:
【1】官方文檔
【2】官方wiki
【3】同事的總結(jié)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/79910.html
摘要:在過(guò)程中會(huì)利用簡(jiǎn)稱中的兩個(gè)方法和。是通過(guò)請(qǐng)求最新的模塊代碼,然后將代碼返回給,會(huì)根據(jù)返回的新模塊代碼做進(jìn)一步處理,可能是刷新頁(yè)面,也可能是對(duì)模塊進(jìn)行熱更新。該方法返回的就是最新值對(duì)應(yīng)的代碼塊。 Hot Module Replacement(簡(jiǎn)稱 HMR) 包含以下內(nèi)容: 熱更新圖 熱更新步驟講解 showImg(https://segmentfault.com/img/remote...
摘要:項(xiàng)目的架構(gòu)也是最近在各種探討研究。還求大神多指點(diǎn)項(xiàng)目技術(shù)總結(jié)技術(shù)棧項(xiàng)目結(jié)構(gòu)探究初體驗(yàn)關(guān)于項(xiàng)目中的配置說(shuō)明項(xiàng)目簡(jiǎn)單說(shuō)明開(kāi)發(fā)這一套,我個(gè)人的理解是體現(xiàn)的是代碼分層職責(zé)分離的編程思想邏輯與視圖嚴(yán)格區(qū)分。前端依舊使用技術(shù)棧完成。 項(xiàng)目地址:https://github.com/Nealyang/R...技術(shù)棧:react、react-router4.x 、 react-redux 、 webp...
摘要:無(wú)論你是前端后端移動(dòng)端開(kāi)發(fā)人員,或是設(shè)計(jì)師產(chǎn)品經(jīng)理,都可以在平臺(tái)上發(fā)布項(xiàng)目,與志同道合的小伙伴一起協(xié)作完成項(xiàng)目。 全平臺(tái)全棧開(kāi)源項(xiàng)目 coderiver 今天終于開(kāi)始前后端聯(lián)調(diào)了~ 首先感謝大家的支持,coderiver 在 GitHub 上開(kāi)源兩周,獲得了 54 個(gè) Star,9 個(gè) Fork,5 個(gè) Watch。 這些鼓勵(lì)和認(rèn)可也更加堅(jiān)定了我繼續(xù)寫(xiě)下去的決心~ 再次感謝各位大佬! ...
摘要:本項(xiàng)目是在之前一個(gè)項(xiàng)目基礎(chǔ)上,用技術(shù)棧重寫(xiě)的一個(gè)書(shū)城項(xiàng)目版本地址本項(xiàng)目地址預(yù)覽地址項(xiàng)目說(shuō)明本項(xiàng)目是一個(gè)構(gòu)建的移動(dòng)書(shū)城項(xiàng)目,數(shù)據(jù)是通過(guò)爬蟲(chóng)爬取,存儲(chǔ)在中,項(xiàng)目通過(guò)構(gòu)建,前端部分是技術(shù)棧。 本項(xiàng)目是在之前一個(gè)vue項(xiàng)目基礎(chǔ)上,用react技術(shù)棧重寫(xiě)的一個(gè)書(shū)城項(xiàng)目 vue版本地址 本項(xiàng)目地址 預(yù)覽地址 項(xiàng)目說(shuō)明 本項(xiàng)目是一個(gè)react + nodejs + mysql構(gòu)建的移動(dòng)書(shū)城項(xiàng)目,...
摘要:的出現(xiàn)真可謂是前端界的福音,正與之宗旨所說(shuō),。據(jù)統(tǒng)計(jì),目前世界上有的項(xiàng)目使用了。技術(shù)棧學(xué)習(xí)路線直到前段時(shí)間筆者的朋友給推薦了一個(gè),真是欣喜若狂也更加堅(jiān)定了自己在繼續(xù)前進(jìn)的想法。這是一個(gè)外國(guó)友人總結(jié)的一套技術(shù)棧學(xué)習(xí)路線,先給傳送門。 我相信點(diǎn)進(jìn)來(lái)的同學(xué)都是沖著標(biāo)題來(lái)的,當(dāng)然本文也不會(huì)讓各位失望。不過(guò)在正式介紹標(biāo)題所述的內(nèi)容之前,我們不妨先放下技術(shù),一起回顧下自己做前端技術(shù)的心路歷程。 前...
閱讀 2155·2021-10-08 10:15
閱讀 1185·2019-08-30 15:52
閱讀 514·2019-08-30 12:54
閱讀 1531·2019-08-29 15:10
閱讀 2682·2019-08-29 12:44
閱讀 3008·2019-08-29 12:28
閱讀 3348·2019-08-27 10:57
閱讀 2212·2019-08-26 12:24