ManifestJson
manifest.json 是 Esmx 框架在构建过程中生成的清单文件,用于记录服务构建的产物信息。它提供了统一的接口来管理构建产物、导出文件和资源统计。
类型定义
ManifestJson
protocol
- 类型:
number - 描述: 清单协议版本(RFC 0001 §5),当前为
2。v2 之前的清单没有该字段;读取端将缺失视为协议 1 并跳过 v2 专属检查。linker 会拒绝protocol高于支持版本的清单。
name
- 类型:
string - 描述: 模块名称,来源于模块配置
version
- 类型:
string - 描述: 模块版本,在构建时从模块的
package.json转录(RFC 0001 §5)。v2 之前的清单在读取时默认为'0.0.0'。
provides
- 类型:
Record<string, ManifestJsonProvide> - 描述: 每个 pkg-export(
pkg: true)包在构建时的已解析版本(RFC 0001 §5)。key 为包标识符,value 记录已解析的安装版本。
uses
- 类型:
string[] - 描述: 从模块
package.json的esmx.uses声明转录的消费边(RFC 0001 §5)。v2 之前的清单在读取时默认为[]。
scopes
- 类型:
Record<string, Record<string, string> - 描述: 导入映射(Import Maps)的作用域映射,key 为作用域前缀,value 为该作用域下的
specifier -> resolved映射,用于运行时基于路径前缀匹配并解析依赖。
exports
- 类型:
ManifestJsonExports - 描述: 导出项配置映射,key为导出路径,value为导出项信息
files
- 类型:
string[] - 描述: 构建输出文件的完整清单,包含所有生成的文件路径
chunks
- 类型:
ManifestJsonChunks - 描述: 编译文件信息,key为源文件,value为编译信息
integrity
- 类型:
Record<string, string> - 描述: 构建输出文件的子资源完整性(SRI)哈希,key 为相对文件路径,value 为
sha384-完整性字符串。仅在生产构建中生成,以避免开发期开销。由RenderContext.modulePreload()消费,并注入到客户端导入映射中。
ManifestJsonExports
导出项配置映射,key为导出路径,value为导出项信息。
ManifestJsonProvide
关于某个被提供(pkg-export)包的构建时事实(RFC 0001 §5)。
version
- 类型:
string - 描述: 该被提供的包在构建时的已解析安装版本,从相对模块根目录的
node_modules/<pkg>/package.json读取。子路径标识符(如vue/jsx-runtime)通过其父包解析。当包无法解析时为'0.0.0'。
ManifestJsonExport
name
- 类型:
string - 描述: 导出项名称
pkg
- 类型:
boolean - 描述: 是否是一个软件包
file
- 类型:
string - 描述: 导出项对应的文件路径
identifier
- 类型:
string - 描述: 导出项的唯一标识符
ManifestJsonChunks
编译文件信息映射,key为源文件,value为编译信息。
ManifestJsonChunk
name
- 类型:
string - 描述: 当前源文件的标识符
js
- 类型:
string - 描述: 当前源文件编译后的 JS 文件路径
css
- 类型:
string[] - 描述: 当前源文件关联的 CSS 文件路径列表
resources
- 类型:
string[] - 描述: 当前源文件关联的其它资源文件路径列表