跳到主要内容

hel-micro

模块联邦sdk化,免构建、热更新、工具链无关的微模块方案

模块联邦sdk化

通过规范打包协议实现模块联邦sdk化. 和模块使用方工具链无关

免构建、热更新

通过sdk导入远程模块,让项目公共依赖立刻享受免构建、热更新的巨大优势.

跨项目共享模块简单

通过sdk接口,开发者即可提升项目内部模块为多个项目的远程共享模块

远程模块导入方式灵活

既可以在使用时按需动态导入,也可以在文件头使用 import 语法静态导入.

开发体验友好

基于源码与运行时代码分离式托管机制,IDE与远程模块的开发交互体验(智能提示、源码查看...)与本地模块保持100%一致

npm生态集成

通过npm的unpkg服务即可加载远程包体,后续会提供Hel Pack管理台联动腾讯蓝鲸与工蜂做远程模块版本化管理,提供秒级回滚、灰度发布、提交记录回溯等贴心功能。

1
2// Step1,入口文件后移,先预加载远程模块,再加载项目入口文件
3import { preFetchLib } from "hel-micro";
4
5async function main() {
6 await preFetchLib("hel-lodash");
7 await import("./loadApp"); // 入口文件后移
8}
9
10main().catch(console.error);
11
12/** --------------------------------------------------------------------------- */
13
14// Step2,预加载动作执行完毕后,可安全在项目内部任意文件的头部使用 import 语法静态导入远程模块
15// 这个包的 js 入口文件是一个空壳文件,仅暴露了一个代理对象,实际执行代码已在 Step1 处拉取完毕
16// 所以它并不会影响你的项目打包体积,同时因为模块主逻辑不参与构建,将提速你的项目构建速度
17import m from "hel-lodash";
18
19export function callRemoteMethod(){
20 // 现在你可以像调用本地方法一样放心调用远程方法了,并可以获得完整的 IDE 提示!^_^
21 const num = m.myUtils.num.random(500);
22 return num;
23}
24
for index cache expried at 2023-09-12