目标端
BuildTarget 接口、TargetRegistry 注册表、内置目标端与新增目标端的方式。
“一套 TS 源码,多端原生产物”的核心:每个端一个BuildTarget,编译器按--target 解析注册表并分发到对应实现——新增目标端实现接口并注册即可,无需改动构建入口。
BuildTarget 接口
| 名称 | 类型 | 说明 |
|---|---|---|
type | TargetType | 目标端标识(web / mp-weixin / …)。 |
label | string | 目标端产物形态描述(CLI 输出与文档)。 |
build | (config, options) => Promise<BuildResult> | 目标端构建实现。 |
内置注册表TargetRegistry(单例 targetRegistry)提供 register / resolve / getAvailableTargets;注册表构造时注册 4 个已实现目标与 3 个远期占位目标:
| 类型 | 实现 | 状态 |
|---|---|---|
| web | WebTarget | 已实现:多页静态 HTML + SSR + 客户端 bundle |
| mp-weixin | MpTarget(微信方言) | 已实现:微信小程序原生工程 |
| mp-alipay | MpTarget(支付宝方言) | 已实现:支付宝小程序原生工程 |
| mp-bytedance | MpTarget(字节方言) | 已实现:抖音小程序原生工程 |
| app-ios / app-android / app-harmony | PlaceholderTarget | 远期:未实现的端编译期快速报错 |
占位目标
未实现的 Target 会注册为占位目标(PlaceholderTarget),构建时快速报错并给出对应阶段。小程序编译管线
小程序目标(src/mp)是一条完整编译管线:分析(analyze)、绑定(binding)、TS 加载(ts-loader)、折叠(fold)、内联(inline)、方法收集(methods)、状态管理(state)、样式处理(styles)、方言适配(dialect)、代码生成(jsgen)、WXML 生成(wxml)与整体编译(compile / build-mp),产出可直接用官方工具链构建发布的原生工程。
方言
方言(dialect)层负责微信 / 支付宝 / 字节三端模板语法差异,mpWeixinTarget / mpAlipayTarget / mpBytedanceTarget 各自绑定一个方言实例。新增目标端
- 实现 BuildTarget 接口(type / label / build)。
- 把实例注册到 targetRegistry。
- 在 TARGET_TYPES 与 isTargetType 中加入新类型。
- 补充对应端文档与验收测试。