hel-micro
模块联邦sdk化,免构建、热更新、工具链无关的微模块方案
模块联邦sdk化
通过规范打包协议实现模块联邦sdk化. 和模块使用方工具链无关
免构建、热更新
通过sdk导入远程模块,让项目公共依赖立刻享受免构建、热更新的巨大优势.
跨项目共享模块简单
通过sdk接口,开发者即可提升项目内部模块为多个项目的远程共享模块
远程模块导入方式灵活
既可以在使用时按需动态导入,也可以在文件头使用 import 语法静态导入.
开发体验友好
基于源码与运行时代码分离式托管机制,IDE与远程模块的开发交互体验(智能提示、源码查看...)与本地模块保持100%一致
npm生态集成
通过npm的unpkg服务即可加载远程包体,后续会提供Hel Pack管理台联动腾讯蓝鲸与工蜂做远程模块版本化管理,提供秒级回滚、灰度发布、提交记录回溯等贴心功能。
12// Step1,入口文件后移,先预加载远程模块,再加载项目入口文件3import { preFetchLib } from "hel-micro";45async function main() {6 await preFetchLib("hel-lodash");7 await import("./loadApp"); // 入口文件后移8}910main().catch(console.error);1112/** --------------------------------------------------------------------------- */1314// Step2,预加载动作执行完毕后,可安全在项目内部任意文件的头部使用 import 语法静态导入远程模块15// 这个包的 js 入口文件是一个空壳文件,仅暴露了一个代理对象,实际执行代码已在 Step1 处拉取完毕16// 所以它并不会影响你的项目打包体积,同时因为模块主逻辑不参与构建,将提速你的项目构建速度17import m from "hel-lodash";1819export function callRemoteMethod(){20 // 现在你可以像调用本地方法一样放心调用远程方法了,并可以获得完整的 IDE 提示!^_^21 const num = m.myUtils.num.random(500);22 return num;23}24