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

7c83980b566833492c6f107634662fd8.gif

9fe4caa6ac16171659c1c02abbcc12f2.png

1、项目简介

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

022033dde50f7421a5167d25e1aeb178.png

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

82cab82fbc081203d0659328319b20a8.png

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

c1f4bc05ed59eb1525021f7e021a834b.gif

cf8d788c9ecc654ee0b015f5b0dd2605.png

2、诞生背景

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

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

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

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

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

c67fb0fda41872e6995eb69e8a36d304.png

5f3e2e1c7b1e72d0e0429612631162fa.png

3、特性优势

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

d14330268b4f172d61632293744d10e9.png

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

ac75bd71a18330650e27cc0aa72c1e9e.png

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

c312bb707c808995da13897d2aff250c.png

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

329d985b7a3678fba4a59e1c480d2e6a.png

490a5bbd11b13918122619f757cd8909.png

4、开源规划

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

8505b8551a7f85f3d148b7ad9b37b4af.png

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

● 远程 web component 组件

● 远程 angular组件

● 远程vue组件

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

● 远程 svelte 组件 等....

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

`helra`将提供以下特性:

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

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

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

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

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

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

f8983072e710a5e4bcf749fe194a65eb.png

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

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

关注腾讯开源公众号

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

7dff3b426f657cab534875506959bf01.png

<think>好的,用户想用virsh edit命令来修改名为hel-vm的虚拟机的配置文件。首先,我得确认用户是否有足够的权限,因为执行virsh命令通常需要root或者有libvirt组权限的用户。如果用户没有权限,可能需要用sudo或者切换到root用户。 接下来,virsh edit的基本用法是直接跟上虚拟机名称,所以命令应该是`virsh edit hel-vm`。这个命令会打开一个临时文件,里面是hel-vm的XML配置文件。用户可能需要使用默认的编辑器,比如vi或者nano,所以如果用户不熟悉这些编辑器,可能需要提前告知如何保存退出,比如在vi中是按Esc然后输入:wq。 然后,用户可能对XML结构不太熟悉,所以需要提醒他们谨慎修改,尤其是像UUID、磁盘路径、网络配置这些关键部分。如果用户只是想修改内存或CPU,可以指出对应的标签在哪里,比如<memory>和<vcpu>。 另外,修改配置文件后,libvirt会做语法检查,如果有错误会提示,这时候用户需要修正错误才能保存。这点很重要,避免配置文件损坏导致虚拟机无法启动。 用户可能还想知道修改后是否需要重启虚拟机,这取决于修改的内容。比如内存或CPU可能需要重启,而某些设置可能支持热插拔。如果有相关引用的话可以引用,但这里用户提供的引用是关于KVM虚拟化的,可能和virsh edit相关,但需要确认具体内容是否符合当前问题。 最后,生成相关问题的时候,需要考虑用户可能的后续疑问,比如如何调整内存、CPU,或者如何备份配置,这些都是常见的后续操作。</think>要使用`virsh edit`命令编辑名为`hel-vm`的虚拟机配置,请按照以下步骤操作: ### 步骤说明 1. **确认权限** 确保当前用户属于`libvirt`用户组,或使用`sudo`提权。建议执行命令前验证虚拟机状态: ```bash virsh list --all | grep hel-vm ``` 2. **执行编辑命令** 通过以下命令直接进入配置文件编辑模式: ```bash virsh edit hel-vm ``` 该命令会调用系统默认文本编辑器(如`vi`或`nano`)打开虚拟机XML配置文件[^1]。 3. **修改配置** - 按需修改参数,例如调整内存大小`<memory unit='KiB'>2097152</memory>`,或CPU核心数`<vcpu placement='static'>2</vcpu>` - **特别注意**:XML语法严格,修改后保存时`libvirt`会自动验证配置有效性。若格式错误会提示`error: XML error`并要求重新编辑 4. **生效配置** 成功保存后,修改会立即写入`/etc/libvirt/qemu/hel-vm.xml`,但部分配置需重启虚拟机生效: ```bash virsh shutdown hel-vm && virsh start hel-vm ``` ### 配置示例(片段) ```xml <domain type='kvm'> <name>hel-vm</name> <memory unit='KiB'>4194304</memory> <!-- 修改内存为4GiB --> <vcpu placement='static'>4</vcpu> <!-- 分配4个虚拟CPU --> <os> <type arch='x86_64'>hvm</type> <boot dev='hd'/> </os> </domain> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值