微前端系列(八)
很多人提到微前端,反射神經就會想到「Module Federation」,中文稱之「模塊聯邦」,以下簡稱 MF 。但 MF 並不是微前端「必要的」存在,甚至並不是一個 Framework ,它只是一種 bundle 的概念,也只是一個共享程式和共享記憶體的一種手段。
MF 是把各個套件的各個版本分散式存在每一個微服務端點,透過 entry point 的 map 確認是否曾經加載過,當曾經加載過特定版本的 module 之後,就不會重複加載,並且載入同一包被快取的 JavaScript 也可以共享記憶體。而這個機制便是 Webpack5 提供的一個打包機制,也是在微前端去解決「版本管理」、「模塊共享」、「記憶體共享」的關鍵機制,這也是為什麼很多人會把這兩個東西劃上等號。
反過來說,其實不使用 MF 也是能夠處理這樣的機制,但這就牽扯微前端的溝通框架,能否進行這樣的溝通和封裝。通常還是蠻仰賴 Bundle Tool 在預處理,否則處理起來實在是相當囉嗦。
你玩過 module federation 嗎?有什麼想法歡迎與我分享喔!