就像 NPM Package 一样,Module Federation
产物同样会生成类型,并且享有类型热加载,尽管产物托管在远程 CDN 上。
@module-federation/enhanced
默认开启类型提示功能,本文将介绍几种常见的使用场景以及具体配置。
使用 @module-federation/enhanced
提供的构建插件进行构建,会自动生成类型文件。
tsconfig.json
在 tsconfig.json
添加 paths
:
info: 不需要关注生产者和消费者的启动顺序
启动后,消费者会自动取拉取生产者的类型文件。
修改生产者代码后,消费者会自动拉取生产者的类型。
如果构建器为 webpack
,还需要再 watchOptions.ignored 增加 **/@mf-types/**
,以避免类型更新导致的循环编译问题
需要在 include
字段增加 ./@mf-types/*
以享有 Federation Runtime
loadRemote
类型提示以及类型热重载
Module Federation
会自动抽取第三方包类型,确保 exposes
文件类型能正常访问。
Module Federation
支持嵌套 remotes ,并会自动抽取嵌套的 remotes 类型。
Module Federation
支持加载动态类型,并且通用支持热更新。
A: 大概率是编译器监听了类型文件夹或者 dist
里的变动导致,将 @mf-types
添加至忽略文件即可。
以 webpack/rspack 为例:
Vmok
版本大于等于 1.9.0
。