Addfox 0.2.0:架构重构与依赖精简
2026 年 5 月 25 日
我们很高兴与大家分享 Addfox 框架的最新进展。0.2.0 版本现已正式发布,这是一次重要的架构重构。本次更新围绕三大核心目标展开:精简依赖、以内置方案替代黑盒工具、提升浏览器扩展开发体验。
依赖精简与供应链安全
本次重构最显著的变化之一,就是果断移除了携带大量传递依赖的第三方包。每一个外部依赖都是潜在的供应链风险——无论是废弃、恶意接管,还是传递包的破坏性更新。通过用精简的内置工具替代大型第三方工具,我们大幅缩小了 Addfox 用户的攻击面。
以下是已移除的依赖:
web-ext(约 586 KB + 26 个传递依赖)—— 完全移除。chrome-launcher—— 移除。archiver(约 40 KB + 9 个传递依赖)—— 替换为内置 zip 工具。cli-table3(约 46 KB + 1 个传递依赖)—— 从@addfox/core中移除。chalk(约 44 KB)、kolorist、minimist—— 从create-addfox-app中移除,替换为轻量级内置工具。
结果是:pnpm-lock.yaml 减少了约 2,156 行,意味着用户安装更快、node_modules 更小、供应链风险更低。
前后对比:第三方运行时依赖
保留的第三方依赖是什么? 只有两个成熟且极小的运行时依赖:
jiti—— 轻量级 TypeScript 配置加载器(约 50 KB,零传递依赖)。prompts—— 极简 CLI 交互提示库(约 30 KB,零传递依赖)。
其余全部是内部模块(@addfox/*)或由构建工具链处理(@rspack/core 作为开发依赖)。
全新内置启动器 @addfox/launcher
此前,Firefox 开发依赖 web-ext run,这是一个功能强大但依赖较重的工具。我们从头构建了 @addfox/launcher:
- 零运行时依赖。
- 统一支持 Chromium 系(Chrome、Edge 等)和 Gecko 系(Firefox、Zen 等)。
- Firefox HMR 改用 RDP 协议直接 reload 临时插件,不再需要
web-ext复杂的进程管理。 - 移除了
web-ext.d.ts、web-ext-logger.d.ts、web-ext-console-stream-hook.ts等兼容文件。
这使得开发服务器启动更快、调试更容易、且完全可控。
HMR 插件重构
@addfox/rsbuild-plugin-extension-hmr 包的代码量减少最多:
- 放弃
web-ext后,launcher.ts和runner.ts被大幅简化。 - 扩展管理器对配置文件目录和 reload 逻辑的处理更加清晰。
- 键盘重载和 WebSocket 服务器路径也得到了精简。
整体来看,工作区 diff 显示约 50 个文件变更,净减少约 1,641 行代码——维护负担更轻、边界情况更少、可靠性更高。
测试覆盖增强
我们不只是删代码,还加大了对质量的投入:
rsbuild-plugin-extension-entry:增加 260 行测试rsbuild-plugin-extension-hmr:增加 114 行测试rsbuild-plugin-extension-manifest:增加 101 行测试rsbuild-plugin-extension-monitor:增加 112 行测试
正式发布
上述架构重构与依赖精简已随 0.2.0 版本正式发布。欢迎升级体验,感谢使用 Addfox!


