背景
对于微前端、微组件化开发最核心的部分就是跨组,跨部门的协同开发,本文主要描述 整个 EMP v2实现的 ts开发的工作流
类型生成
生成声明文件有两部分
- MF 模式类型生成
- 提供基站使用方进行使用
- 为共享代码提供安全性验证
- 根据
expose
和name
生成对应类型
- Library 模式类型生成
- 提供 npm 方式的使用提示
生成流程
生成流程通过 worker-theads 独立运行,提高整体效率
- 建立
dts
生成线程 - 遍历项目资源目录
- 实例化 dts类
- 读取 tsconfig.json
- 指定文件缓存目录
- 根据配置实例化 ts.languageService
- 使用 dts对象编译 ts文件
dts emit
- 调用
languageService.getEmitOutput
genDCode
- 调用
- 输出文件 以
moduleFederation.name
作为命名文件库模式根据lib.name进行命名
- 退出
dts
线程
同步流程
多基站的类型同步目前默认根据对应目录部署的访问进行下载同步
- 主项目通过约定目录或者指定目录进行请求
- 下载并保存
d.ts
文件到src
,让ts可以支持识别类型并且让类型检测生效 - 将远程基站的项目名称替换成本地
remote
的自定义名称 - 生成项目定义好的对应基站的d.ts文件
TODO
对于基站同步这块还需做到自动同步和自动同步热更的功能都会放到后续规划
最后
对微前端的开发有更多看法和想法的可以评论区一起交流