EMP v2 Typescript 工作流

1,576 阅读1分钟

背景

对于微前端、微组件化开发最核心的部分就是跨组,跨部门的协同开发,本文主要描述 整个 EMP v2实现的 ts开发的工作流

类型生成

生成声明文件有两部分

  • MF 模式类型生成
    • 提供基站使用方进行使用
    • 为共享代码提供安全性验证
    • 根据 exposename 生成对应类型
  • 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

对于基站同步这块还需做到自动同步和自动同步热更的功能都会放到后续规划

最后

对微前端的开发有更多看法和想法的可以评论区一起交流