IT之家 11 月 14 日消息,騰訊開(kāi)源昨日公布了名為 hel-micro 的微模塊方案,號(hào)稱是業(yè)內(nèi)首個(gè)以 SDK 的方式支持模塊聯(lián)邦技術(shù)的方案,可“脫離工具鏈的枷鎖,回歸到 JS 語(yǔ)言本身”,從而讓不同工具鏈間的聯(lián)邦模塊可以互認(rèn)互通,提高了模塊的流通。
騰訊表示,隨著前端開(kāi)發(fā)進(jìn)入工程化、模塊化、組件化開(kāi)發(fā)時(shí)代,多人、跨團(tuán)隊(duì)共同協(xié)作開(kāi)發(fā)一個(gè)項(xiàng)目已成為常態(tài),項(xiàng)目規(guī)模龐大到一定程度時(shí)會(huì)遇到以下問(wèn)題:
項(xiàng)目引入的第三方模塊越來(lái)越多,導(dǎo)致包體構(gòu)建速度越來(lái)越慢;
一些基礎(chǔ)業(yè)務(wù)模塊抽象到 npm 提供給其他項(xiàng)目復(fù)用后,一旦有功能優(yōu)化或問(wèn)題修復(fù),需要推動(dòng)使用方主動(dòng)更新;
針對(duì)此痛點(diǎn),社區(qū)提出了模塊聯(lián)邦技術(shù)方案,將成為未來(lái)的主流開(kāi)發(fā)趨勢(shì),它最大的優(yōu)勢(shì)不參與主項(xiàng)目編譯,降低主項(xiàng)目包體積,提高編譯速度,并讓模塊引入方可以做線上動(dòng)態(tài)更新,完美解決了上述兩大痛點(diǎn)。
目前社區(qū)實(shí)現(xiàn)模塊聯(lián)邦的頭部玩家是 webpack5 推出的 ModuleFederation 特性來(lái)支持,以及 vite 社區(qū)的強(qiáng)勢(shì)追隨者 vite-federation-plugin,但他們都是以構(gòu)建工具鏈支持的方式支持,意味著主項(xiàng)目和子項(xiàng)目間必須工具鏈統(tǒng)一,否則彼此之間模塊不能互認(rèn)(例如主項(xiàng)目是 webpack5,子項(xiàng)目是 webpack4, 例如主項(xiàng)目是 vite,子項(xiàng)目是 webpack、parcel 等其他)。
為了轉(zhuǎn)移這些本不該讓開(kāi)發(fā)承擔(dān)的額外遷移成本,hel-micro 提出了模塊聯(lián)邦 SDK 化的架構(gòu)理念并成功將其實(shí)現(xiàn)。
IT之家從騰訊新聞稿中得知,hel-micro 微模塊方案擁有“跨項(xiàng)目共享”、“動(dòng)態(tài)更新”、“免構(gòu)建”、“工具鏈無(wú)關(guān)”、“遠(yuǎn)程模塊類型提示”、“無(wú)縫集成 npm 生態(tài)”特性,接入代價(jià)相對(duì) Webpack5 MF、Vite-federation-plugin 更小。
騰訊同時(shí)表示,未來(lái)計(jì)劃為框架規(guī)劃更多的上層框架遠(yuǎn)程加載適配器,包含:
遠(yuǎn)程 web component 組件
遠(yuǎn)程 angular 組件
遠(yuǎn)程 vue 組件
遠(yuǎn)程 react 組件(已實(shí)現(xiàn)為 hel-micro-react,提供鉤子函數(shù)加載遠(yuǎn)程 react 組件)
遠(yuǎn)程 svelte 組
目前騰訊已經(jīng)將項(xiàng)目公布在 GitHub 中,感興趣的小伙伴們可以點(diǎn)此訪問(wèn)。
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。