首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >开源公告|hel-micro-node, 免构建、平台化的node模块联邦方案

开源公告|hel-micro-node, 免构建、平台化的node模块联邦方案

作者头像
腾讯开源
发布2026-01-27 10:03:21
发布2026-01-27 10:03:21
1340
举报

项目简介

hel-micro-node 是 hel+下面的一个子模块,专注于提供node端模块联邦解决方案,相比竞品 @module-federation/node,提供更多独有特性,接入更简单,使用更方便。

维度/方案

Hel+(hel-micro-node)

@module-federation/node

版本化

✅基于hel-meta.json

✅基于Manifest

更新文件头静态导入模块

✅允许免启动服务更新

❌必须启动服务才能更新

平台化

✅配套提供https://github.com/Tencent/hel/tree/main/helpack

❌无相关方案

免构建

✅仅引入sdk映射关系即可

❌必须使用webpack并搭配复杂的配置文件构建你的node应用

双模驱动

✅即是npm传统模块也是微模块

❌只能作为远程模块身份使用

上手简易度

🌟🌟🌟🌟🌟简单快捷,仅需引入sdk

🌟🌟较难,需对构建工具层改造

功能特性

免构建:

无需像@module-federation/node方案那样,使用webpack构建你的node应用才能使用服务端模块联邦技术, 仅需引入 hel-micro-node sdk 即可。

平台化:

通过helpack控制台来让服务器在运行期间载入新版本,helpack会通过web-socket长连接将版本更新消息通知到各个使用了hel-micro-node的node服务。

执行以下命令可运行平台化示例

代码语言:javascript
复制
git clone https://github.com/Tencent/hel
cd helpack
npm run build:server
npm run server
npm run user

然后访问localhost:7776, 点击图中的红圈处文字会跳转到本地helpack平台

再点击下图红圈位置可切换服务载入的示例模块到新版本

此外,我们还能查看使用此模块的服务器环境数据(注:需要sdk端自己上报)

快速开始

示例运行

环境准备:node 版本 18,系统 mac OS,hel-micro-node示例我们通过以下命令行操作步骤获得

代码语言:javascript
复制
# 下载仓库源码
git clone https://github.com/Tencent/hel
# 进入helpack 目录(关于服务端模块联邦的演示在此目录下)
cd helpack
# 安装依赖
pnpm install
# 运行 node 示例
pnpm --filter hm-node-user-simple run start

项目接入

使用 npm 命令行安装 sdk

代码语言:javascript
复制
npm i hel-micro-node

入口文件里使用 mapAndPreload 接口映射你的node模块为远程模块并预加载后,再启动你的服务,然后服务里的其他文件的头部可静态导入并使用此模块。

映射并预加载

代码语言:javascript
复制
const { mapAndPreload } = require('hel-micro-node');

async function main() {
  // 注释掉此映射关系,则使用的模块来自 node_modules 目录
  await mapAndPreload({ '@hel-demo/mono-libs': true });
  require('./server');
}

main().catch(console.error);

使用远程模块

代码语言:javascript
复制
const http = require('http');
const { hello } = require('@hel-demo/mono-libs');

const server = http.createServer(async (req, res) => {
  res.writeHead(code, { 'Content-Type': 'text/plain' });
  res.end(`hello remote mod: ${hello()}`);
});

发布远程模块

代码语言:javascript
复制
hel init remote-lib-project
cd remote-lib-project
pnpm i

具体发布流程参考:

https://tencent.github.io/hel/docs/tutorial/hel-mono/hel-mono-use

适用场景

当你的node服务需做到以下任意一项提效时,都可以使用hel-micro-node来解决。

减少镜像编译次数,节约平台磁盘空间

一次镜像编译通常都会是几个G,模块联邦仅需要部署子模块不到1M的产物到cdn即可,宿主不再需要走编译代码、发布镜像过程,大大降低了部署平台的镜像存储空间。

提高模块分发效率,降低上线时间

由于模块可动态下发到服务中,不需要服务重启,当模块被多个宿主使用时,可做到对单个模块的一次部署,所有使用的宿主可立即生效的效果。

● 更快的模块回滚速度,提高运维效率

当需要回滚到某个版本时,仅需要通过模块管控平台或人工调用api操作即可,可做到秒级回滚。

项目地址

👉 Github 仓库:https://github.com/Tencent/hel/tree/main/packages/hel-micro-node

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目简介
  • 功能特性
  • 快速开始
    • 示例运行
  • 适用场景
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档