mf-stats.json 字段定义
mf-stats.json 是启用 manifest 后生成的构建统计文件,包含本次构建的 exposes/shared/remotes 资源信息、metaData(构建信息、remoteEntry 等)以及资产分析结果。
本文按字段解释 mf-stats.json 的结构,便于排查“线上到底加载了哪些资源”“某个 shared 在哪些地方被用到”“remoteEntry 的类型/地址是什么”等问题。
顶层结构
metaData(两者都有)
metaData 描述“这个构建产物怎么被消费端加载”以及“本次构建的上下文信息”。mf-stats.json 与 mf-manifest.json 都包含该字段。
StatsMetaData
StatsMetaData 有两种互斥形态(只会出现一种):
- 函数形式:
getPublicPath: string - 字符串形式:
publicPath: string(可选ssrPublicPath: string)
共同字段如下:
| 字段 | 类型 | 必有 | 说明 |
| ---------------- | ---------------- | ---- | ----------------------------- | --- |
| name | string | 是 | 当前 remote/host 名称 |
| globalName | string | 是 | remoteEntry 对应的 globalName |
| buildInfo | StatsBuildInfo | 是 | 构建信息(版本/构建名等) |
| remoteEntry | ResourceInfo | 是 | remoteEntry 资源信息 |
| ssrRemoteEntry | ResourceInfo | 否 | SSR remoteEntry(若有) |
| types | MetaDataTypes | 否 | 类型产物信息(若有) |
| type | string | 是 | APP | NPM |
| pluginVersion | string | 否 | MF 构建插件版本 |
ResourceInfo
StatsBuildInfo
MetaDataTypes
assets(两者都有)
StatsAssets 描述某个条目(shared/expose)的同步/异步资源列表。mf-stats.json 与 mf-manifest.json 都会用到该结构。
StatsAssets
StatsAssetsInfo
shared
StatsShared
remotes
StatsRemote 是 “remote 的消费关系” 记录:包含它的 entry 或 version(二选一),以及它在当前构建里是如何被消费的。
StatsRemoteVal(共同字段)
StatsRemote(互斥字段)
entry: string(存在时不会有version)version: string(存在时不会有entry)