nargo-optimizer
HXO 框架的 AST 优化器,提升运行时性能的核心组件。
📖 简介
nargo-optimizer 负责在编译阶段对 nargo-ir 进行静态分析和转换。通过识别模板中的静态内容、常量提升以及预计算,它能显著减少运行时的计算量和 DOM 操作。
✨ 核心特性
- 静态提升 (Static Hoisting): 识别模板中的完全静态子树,并将其提升为常量,避免在渲染函数中重复创建。
- 样式提取 (Style Collection): 深度扫描模板和脚本,提取 Tailwind 类名并交由
StyleEngine生成原子 CSS。 - 国际化优化 (i18n Optimization): 在编译时预填多语言文本,减少客户端的翻译开销。
- 调用追踪: 追踪脚本中函数和变量的调用频次,为后续的代码内联提供决策依据。
🏗️ 核心逻辑
- Optimizer: 核心优化引擎,持有
StyleEngine实例并管理整个优化管线。 - Static Analysis: 遍历
TemplateNodeIR,通过is_static标记可被提升的节点。 - Style Processing: 收集
JsExpr和AttributeIR中的类名,统一分发至样式引擎。
🔗 相关项目
- nargo-ir: 优化的核心对象。
- nargo-parser-tailwind: 消费提取出的样式类。
- nargo-compiler: 在编译管线中调度此优化器。