现代浏览器插件开发指南

最近又写了一本小书。
这本小书定价 29 元,你可以在 这里 购买 PDF 版本。如果你有特殊需求,也可以购买 Markdown + PDF 版本,价格是 49 元(为了增加盗版成本)。
这本书篇幅不长,但因为比较小众,所以定价稍高,请读者自行斟酌购买。
这是一本关于浏览器插件开发的书。这本书面向的是那些希望开发自己的浏览器插件满足自己需求的,也许你是专业的前端程序员,或是略懂前端代码的后端人员,在 AI 的加持下,大概都能从中受益。
之所以想写这本书,是因为我在过去一两年开发过不少浏览器插件(如微信读书笔记同步助手 Notepal, 浏览器 AI 助手 SumBuddy, 专注插件 等等标签 等等),积累了不少经验。这几年越来越多人开始做浏览器插件,尤其是在 AI 时代,浏览器插件作为重要的输入入口,能做的事情越来越多。我想可以把这些经验分享出来,让更多人可以开发满足自己需求的插件。
插件开发其实不是一件很难的事,特别是现在出现了一些成熟的框架,比如 Plasmo, WXT, CRXJS 等。这些插件把代码构建、打包过程都封装得很好,开发者只需要关心插件的逻辑即可。
我自己用过 Plasmo 和 WXT, 这本书我会使用 WXT 进行教学。因为经过自己的长期实践,我认为 WXT 比 Plasmo 的设计更加合理,配套的工具更好用。当然每个框架有每个框架的利弊,即使你想使用其它框架,你还是能从这本书收获很多框架以外的知识,因为框架只是辅助。
另外,本书以 Manifest V3 为背景编写,不会讨论 Manifest V2 的内容。如果你不知道两者具体的区别,你也不需要知道(因为我也不知道)。简单来说 V3 比 V2 在安全性上做了更严格的控制,这一点虽然备受争议,但对于大部分的情况不会有太大的影响。
本书在涉及 UI 开发的部分我会使用 React, 这是我自己日常使用的库,对于使用 Vue, Svelte 等其它库的读者,也不需要担心,用什么框架并不是那么重要。并且 WXT 也支持不同的 UI 库。如果你想用其它库,翻看 WXT 的文档即可。
本书的实战中,我不引入任何样式库,因为会增加额外的和插件开发无关的复杂度。请读者不要计较实例的美观性。
读这本书前,我默认读者了解以下技术:
- 了解 JSON 这种数据结构
- 了解基本的 JavaScript/TypeScript, HTML, CSS 知识
- 有能力搭建 Node.js 开发环境
读完这本书后,读者能学习到开发一个浏览器最重要的几个知识点:
- 数据存储
- content script UI 的构建
- 消息传递
这几个知识点贯穿了所有实际场景必需的元素,我在开发自己的插件时,基本是围绕这三个基本的功能展开。至于其它更多的插件 API, 读者应该自己按照需求查看文档使用。
在讲解消息传递的实例中,我用 AI 消息流作为例子讲解,对于需要开发 AI 相关的浏览器插件的读者应该很有启发。
目录
- 概述
- 插件的基本结构
- manifest
- popup
- content script
- options
- background script
- 插件 API
- 创建插件开发项目
- 基本数据存储:Todo List 实战
- 进阶数据存储
- 监听数据变动
- 数据迁移 (Migration)
- Content Script 基本知识
- 动态注入 content script
- 在 content script 中渲染 UI
- 真实环境中的一些经验
- 消息传递
- 单次传递
- 长连接传递
- 实战: 渲染 AI 消息流
- 多语言支持
- 插件原生多语言机制
- 使用 i18next
- 附录
- 最小权限原则
- 处理用户登录
- host permissions
- 定时任务
- 自动生成不同尺寸的 icon
一些预览


