11 月 14 日消息,腾讯开源昨日公布了名为 hel-micro 的微模块方案,号称是业内首个以 SDK 的方式支持模块联邦技术的方案,可“脱离工具链的枷锁,回归到 JS 语言本身”,从而让不同工具链间的联邦模块可以互认互通,提高了模块的流通。
腾讯表示,随着前端开发进入工程化、模块化、组件化开发时代,多人、跨团队共同协作开发一个项目已成为常态,项目规模庞大到一定程度时会遇到以下问题:
项目引入的第三方模块越来越多,导致包体构建速度越来越慢;
一些基础业务模块抽象到 npm 提供给其他项目复用后,一旦有功能优化或问题修复,需要推动使用方主动更新;
针对此痛点,社区提出了模块联邦技术方案,将成为未来的主流开发趋势,它最大的优势不参与主项目编译,降低主项目包体积,提高编译速度,并让模块引入方可以做线上动态更新,完美解决了上述两大痛点。
目前社区实现模块联邦的头部玩家是 webpack5 推出的 ModuleFederation 特性来支持,以及 vite 社区的强势追随者 vite-federation-plugin,但他们都是以构建工具链支持的方式支持,意味着主项目和子项目间必须工具链统一,否则彼此之间模块不能互认(例如主项目是 webpack5,子项目是 webpack4, 例如主项目是 vite,子项目是 webpack、parcel 等其他)。
为了转移这些本不该让开发承担的额外迁移成本,hel-micro 提出了模块联邦 SDK 化的架构理念并成功将其实现。
从腾讯新闻稿中得知,hel-micro 微模块方案拥有“跨项目共享”、“动态更新”、“免构建”、“工具链无关”、“远程模块类型提示”、“无缝集成 npm 生态”特性,接入代价相对 Webpack5 MF、Vite-federation-plugin 更小。
腾讯同时表示,未来计划为框架规划更多的上层框架远程加载适配器,包含:
远程 web component 组件
远程 angular 组件
远程 vue 组件
远程 react 组件(已实现为 hel-micro-react,提供钩子函数加载远程 react 组件)
远程 svelte 组
目前腾讯已经将项目公布在 GitHub 中,感兴趣的小伙伴们可以点此访问。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,所有文章均包含本声明。
最新评论