【每日一題NO.88】webpack的runtime和manifest

Runtime && Manifest
主要是管理所有模塊的交互。
Runtime
Runtime 主要是指在瀏覽器運(yùn)行時(shí),webpack 用來(lái)連接模塊化的應(yīng)用程序的所有代碼。
包含:在模塊交互時(shí),連接模塊所需的加載和解析邏輯。 包括:瀏覽器中的已加載模塊的連接,以及懶加載模塊的執(zhí)行邏輯。
Manifest
在代碼經(jīng)過(guò)編譯打包之后,形成如 index.html 文件、一些 bundle 和各種資源加載到瀏覽器中,你的src 目錄的文件結(jié)構(gòu)都已經(jīng)不再存在,那 webpack 如何管理所有模塊之間的交互呢?這就是 manifest 數(shù)據(jù)的由來(lái)。
當(dāng)編譯器開(kāi)始執(zhí)行,解析和映射應(yīng)用程序時(shí),它會(huì)保留所有模塊的詳細(xì)要點(diǎn)。
這個(gè)數(shù)據(jù)集合成為 manifest,當(dāng)完成打包并發(fā)送到瀏覽器時(shí),會(huì)在運(yùn)行時(shí)通過(guò) manifest 來(lái)解析加載模塊。
無(wú)論選擇哪種模塊語(yǔ)法,那些 import 或 require 語(yǔ)句都已經(jīng)轉(zhuǎn)化為__webpack_require__方法,此方法指向模塊標(biāo)識(shí)符。
通過(guò)使用 manifest 中的數(shù)據(jù),runtime 將能夠查詢模塊標(biāo)識(shí)符,檢索背后對(duì)應(yīng)的模塊。
總結(jié)
runtime:根據(jù) manifest 數(shù)據(jù)管理模塊代碼。主要是指模塊交互時(shí),連接模塊所需的加載和解析邏輯。包括:已經(jīng)加載到瀏覽器中的連接模塊邏輯,以及尚未加載模塊的延遲加載邏輯
manifest:記錄在打包過(guò)程中,各個(gè)模塊之間的信息以及關(guān)聯(lián)關(guān)系。
所有《每日一題》的 知識(shí)大綱索引腦圖 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
你也可以點(diǎn)擊文末的 “閱讀原文” 快速跳轉(zhuǎn)

