浏览器扩展开发有个通病:起步容易,维护要命。
一个弹窗、几段内容脚本、几个后台监听——看起来很简单。但业务一复杂,代码就炸:后台逻辑变成垃圾堆,消息路由散落各处,浏览器API到处泄漏,测试更是噩梦。
![]()
HexaJS想解决这个问题。这是个专为现代浏览器扩展设计的框架,核心思路是把"运行时上下文"当成一等公民来管。
扩展不是单应用,是多孤岛
现代扩展至少跑在三个互相隔离的环境里:后台脚本、内容脚本、弹窗/开发者工具等UI层。每个环境的规则、能力、生命周期都不一样。
HexaJS的做法是用装饰器标记服务属于哪个上下文:
@Injectable({ context: HexaContext.Background })
export class TabQueryService { ... }
框架在构建阶段就扫描这些装饰器,分析依赖图,提前验证边界。依赖注入不只是方便,成了架构强制力。
值也能注入
除了服务,配置项也用token显式管理:当前浏览器平台、构建模式、API地址、功能开关……全部可注入,不再硬编码。
浏览器扩展开发长期缺工业级工具。HexaJS的野心是把这门手艺变成正经工程。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.