前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源公告 | hel-micro-工具链无关的微模块方案

开源公告 | hel-micro-工具链无关的微模块方案

作者头像
腾讯开源
发布2023-11-14 10:53:50
3550
发布2023-11-14 10:53:50
举报

1、项目简介

hel-micro 是业内首个以sdk的方式支持模块联邦技术的方案,它脱离了工具链的枷锁,回归到js语言本身,接入快速、简单、灵活,极大的降低了模块联邦技术的接入门槛,让不同工具链间的联邦模块可以互认互通,提高了模块的流通。

独创的双构建机制,让远程模块的开发体验等效于本地模块

运行时模块聚合让线上动态更新易如反掌,也可以按需定制不同场景的版本下发规则

2、诞生背景

前端开发进入工程化、模块化、组件化开发时代,多人、跨团队共同协作开发一个项目已成为常态,项目规模庞大到一定程度时会遇到以下问题:

● 项目引入的第三方模块越来越多,导致包体构建速度越来越慢;

● 一些基础业务模块抽象到npm提供给其他项目复用后,一旦有功能优化或问题修复,需要推动使用方主动更新;

针对此痛点社区提出了模块联邦技术方案,将成为未来的主流开发趋势,它最大的优势不参与主项目编译,降低主项目包体积,提高编译速度,并让模块引入方可以做线上动态更新,完美解决了上述两大痛点,目前社区实现模块联邦的头部玩家是 webpack5 推出的 ModuleFederation 特性来支持,以及vite社区的强势追随者 vite-federation-plugin,但他们都是以构建工具链支持的方式支持,意味着主项目和子项目间必须工具链统一,否则彼此之间模块不能互认(例如主项目是webpack5,子项目是webpack4, 例如主项目是vite,子项目是webpack、parcel等其他)。

为了转移这些本不该让开发承担的额外迁移成本,hel-micro 提出了模块联邦联邦sdk化的架构理念并成功将其实现。

3、特性优势

相比社区已有方案,hel-micro 优势如下:

基于 sdk 的远程加载能力,我们可以搭配公共cdn部署远程模块(sdk默认指向unpkg),用户也可以轻松定制自己的模块管控平台,然后重置sdk的请求模块元数据接口即可。

再结合用户自己的cd&cd 流水线,可完成模块从提交、发布、到运维的全生命周期管理的闭环

进而可以搭建出一个类似如下架构 helpack 的模块管控平台了

4、开源规划

开源只是开始,基于核心层提供的远程加载能力

我们规划未来实现更多的上层框架远程加载适配器,例如

● 远程 web component 组件

● 远程 angular组件

● 远程vue组件

● 远程react组件(已实现为hel-micro-react,提供钩子函数加载远程react组件)

● 远程 svelte 组件 等....

同时我们后续很快很提供一个基于`hel-micro` + `react` + `pnpm` 的微前端应用示范`helra`.

`helra`将提供以下特性:

1 子应用独立部署,独立发布,由一级路由命中访问

2 共享基座上下文,可在一级路由下独立注册自己的子路由

3 应用本地启动自带基座,发布后基座运行时自动移除

4 应用间可相互共享组件,享受动态更新优势

5 所有应用均可访问更底层的远程公告库,

6 开发时应用间可以相互联调对方的代码

欢迎访问我们的仓库:https://github.com/Tencent/hel并一同参与建设 hel-micro 相关生态。

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

关注腾讯开源公众号

获取更多最新腾讯官方开源信息!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档