源码 Patch
使用 TSQuery 匹配编译后源码中的 TypeScript AST 节点,再通过 MagicString 精确改写当前内存区间。
编写源码 Patch
Harmony 按确定顺序加载 Patch Provider。每个 Patch 都会继续处理前一个 Patch 的输出,因此针对同一目标的独立修改可以组合生效。无法应用的 Patch 会被记录并跳过;Harmony 始终不会改写已安装的插件文件。
已安装源码(保持不变)
-> 有序的 Patch Provider
-> 经过验证的内存变换
-> Host 重载或浏览器 HMR你可以先了解 Harmony 在运行时中的位置,或直接阅读安装指南。项目灵感来自 Andreas Pardeike 和其他贡献者创作的同名 C# 项目 Harmony。