<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术 - DevOps on Loen blog</title><link>https://blog.loen.top/posts/tech-frontend/</link><description>Recent content in 技术 - DevOps on Loen blog</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://blog.loen.top/posts/tech-frontend/index.xml" rel="self" type="application/rss+xml"/><item><title>浏览器插件开发</title><link>https://blog.loen.top/posts/tech-frontend/%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/</link><pubDate>Mon, 15 Dec 2025 10:11:10 +0800</pubDate><guid>https://blog.loen.top/posts/tech-frontend/%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/</guid><description>&lt;h2 id="-官方文档和教程"&gt;📚 &lt;strong&gt;官方文档和教程&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="1-核心官方文档"&gt;&lt;strong&gt;1. 核心官方文档&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/extensions"&gt;Chrome Extensions Developer Guide&lt;/a&gt;&lt;/strong&gt; - &lt;strong&gt;必读起点&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;最权威、最完整的官方文档&lt;/li&gt;
&lt;li&gt;包含Manifest V3的完整迁移指南&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/extensions/reference"&gt;Chrome Extensions API Reference&lt;/a&gt;&lt;/strong&gt; - API查询手册&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions"&gt;MDN WebExtensions Guide&lt;/a&gt;&lt;/strong&gt; - 跨浏览器标准&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-官方教程和示例"&gt;&lt;strong&gt;2. 官方教程和示例&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/extensions/get-started"&gt;Getting Started Tutorial&lt;/a&gt;&lt;/strong&gt; - 5分钟创建第一个插件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/GoogleChrome/chrome-extensions-samples"&gt;Extension Samples GitHub&lt;/a&gt;&lt;/strong&gt; - &lt;strong&gt;黄金资源！&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;100+个官方示例项目&lt;/li&gt;
&lt;li&gt;按功能分类，代码质量高&lt;/li&gt;
&lt;li&gt;适合直接学习复制&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-学习路径推荐"&gt;🚀 &lt;strong&gt;学习路径推荐&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="阶段1基础入门1-2周"&gt;&lt;strong&gt;阶段1：基础入门（1-2周）&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;官方Hello World&lt;/strong&gt; - 了解基础结构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;阅读Manifest V3文档&lt;/strong&gt; - 理解新版变化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;尝试简单插件&lt;/strong&gt;：如页面背景色修改器&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="阶段2核心概念2-3周"&gt;&lt;strong&gt;阶段2：核心概念（2-3周）&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;内容脚本 vs 后台脚本&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;消息传递机制&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储API使用&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权限系统实践&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="阶段3实战项目1-2个月"&gt;&lt;strong&gt;阶段3：实战项目（1-2个月）&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;从简单到复杂逐步实践&lt;/p&gt;
&lt;h2 id="-优秀开源项目推荐"&gt;🌟 &lt;strong&gt;优秀开源项目推荐&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="a-初学者友好型"&gt;&lt;strong&gt;A. 初学者友好型&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项目&lt;/th&gt;
 &lt;th&gt;简介&lt;/th&gt;
 &lt;th&gt;学习重点&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/lumariver/reading-time-extension"&gt;Reading Time&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;显示文章阅读时间&lt;/td&gt;
 &lt;td&gt;内容脚本、DOM操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/bitwarden/browser"&gt;Tab Manager&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;简单的标签页管理&lt;/td&gt;
 &lt;td&gt;tabs API、弹出页面&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/simov/markdown-viewer"&gt;Markdown Viewer&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;查看Markdown文件&lt;/td&gt;
 &lt;td&gt;文件访问、内容渲染&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="b-中级项目推荐重点学习"&gt;&lt;strong&gt;B. 中级项目（推荐重点学习）&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项目&lt;/th&gt;
 &lt;th&gt;简介&lt;/th&gt;
 &lt;th&gt;技术栈&lt;/th&gt;
 &lt;th&gt;学习价值&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/tulios/json-viewer"&gt;JSON Viewer&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;JSON格式化查看器&lt;/td&gt;
 &lt;td&gt;Content Script、样式隔离&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/webclipper/web-clipper"&gt;Web Clipper&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;网页剪辑工具&lt;/td&gt;
 &lt;td&gt;复杂DOM操作、截图&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/darkreader/darkreader"&gt;Dark Reader&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;黑暗模式插件&lt;/td&gt;
 &lt;td&gt;高性能CSS注入、主题系统&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/ovity/octotree"&gt;Octotree&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;GitHub文件树&lt;/td&gt;
 &lt;td&gt;复杂UI、API调用&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="c-大型完整项目"&gt;&lt;strong&gt;C. 大型完整项目&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项目&lt;/th&gt;
 &lt;th&gt;简介&lt;/th&gt;
 &lt;th&gt;技术栈&lt;/th&gt;
 &lt;th&gt;特色&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/1Password/1password-browser-extension"&gt;1Password&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;密码管理器&lt;/td&gt;
 &lt;td&gt;React、TypeScript、加密&lt;/td&gt;
 &lt;td&gt;企业级代码质量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/gorhill/uBlock"&gt;uBlock Origin&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;广告拦截器&lt;/td&gt;
 &lt;td&gt;高性能过滤、规则引擎&lt;/td&gt;
 &lt;td&gt;性能优化典范&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/Tampermonkey/tampermonkey"&gt;Tampermonkey&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;用户脚本管理器&lt;/td&gt;
 &lt;td&gt;沙箱、脚本执行&lt;/td&gt;
 &lt;td&gt;插件中的插件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/bitwarden/browser"&gt;Bitwarden&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;开源密码管理器&lt;/td&gt;
 &lt;td&gt;跨平台、加密&lt;/td&gt;
 &lt;td&gt;完整产品体验&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="-开发工具和框架"&gt;🛠️ &lt;strong&gt;开发工具和框架&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="1-脚手架工具"&gt;&lt;strong&gt;1. 脚手架工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/dutiyesh/chrome-extension-cli"&gt;chrome-extensions-cli&lt;/a&gt;&lt;/strong&gt; - 快速创建项目&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://docs.plasmo.com/"&gt;plasmo&lt;/a&gt;&lt;/strong&gt; - 现代化框架（推荐！）
&lt;ul&gt;
&lt;li&gt;支持React、TypeScript&lt;/li&gt;
&lt;li&gt;热重载、自动构建&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-开发辅助工具"&gt;&lt;strong&gt;2. 开发辅助工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://chrome.google.com/webstore/detail/extensions-developer-too/ohmmkhmmmpcnpikjeljgnaoabkaalbgc"&gt;Extension Developer Tools&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin"&gt;CRX Viewer&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-实用库"&gt;&lt;strong&gt;3. 实用库&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/mozilla/webextension-polyfill"&gt;webextension-polyfill&lt;/a&gt;&lt;/strong&gt; - 跨浏览器兼容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/acvetkov/chrome-extension-async"&gt;chrome-extension-async&lt;/a&gt;&lt;/strong&gt; - Promise化API&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-优质学习资源"&gt;📖 &lt;strong&gt;优质学习资源&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="1-视频教程"&gt;&lt;strong&gt;1. 视频教程&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://youtu.be/ikB2_0dvbYU"&gt;Chrome Extensions Crash Course&lt;/a&gt;&lt;/strong&gt; - Traversy Media&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://youtu.be/4Qy3F7cL8jI"&gt;Build a Chrome Extension&lt;/a&gt;&lt;/strong&gt; - Fireship&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-博客和文章"&gt;&lt;strong&gt;2. 博客和文章&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://zhuanlan.zhihu.com/p/59996584"&gt;Chrome Extensions 开发全攻略&lt;/a&gt;&lt;/strong&gt; - 中文详细教程&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/extensions/mv3/intro/"&gt;Manifest V3 迁移指南&lt;/a&gt;&lt;/strong&gt; - 必读&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-社区"&gt;&lt;strong&gt;3. 社区&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://groups.google.com/a/chromium.org/g/chromium-extensions"&gt;Chrome Extensions Forum&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://stackoverflow.com/questions/tagged/google-chrome-extension"&gt;Stack Overflow - chrome-extension tag&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-实战学习建议"&gt;🎯 &lt;strong&gt;实战学习建议&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="第一步分析简单项目"&gt;&lt;strong&gt;第一步：分析简单项目&lt;/strong&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 克隆一个简单项目&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/GoogleChrome/chrome-extensions-samples
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 重点研究这些示例：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- examples/hello-world/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- examples/page-redder/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- examples/tabs-manager/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="第二步动手修改"&gt;&lt;strong&gt;第二步：动手修改&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;选一个简单示例&lt;/li&gt;
&lt;li&gt;逐行理解代码&lt;/li&gt;
&lt;li&gt;尝试添加新功能&lt;/li&gt;
&lt;li&gt;调试和测试&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="第三步自己从头创建"&gt;&lt;strong&gt;第三步：自己从头创建&lt;/strong&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用Plasmo脚手架&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm create plasmo@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 选择TypeScript + React&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="-代码学习技巧"&gt;🔍 &lt;strong&gt;代码学习技巧&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="阅读开源项目时关注"&gt;&lt;strong&gt;阅读开源项目时关注：&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;目录结构&lt;/strong&gt; - 如何组织代码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;manifest.json&lt;/strong&gt; - 权限配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;消息传递流程&lt;/strong&gt; - content ↔ background ↔ popup&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;错误处理&lt;/strong&gt; - 如何优雅处理异常&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性&lt;/strong&gt; - 如何保护用户数据&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="特别推荐的代码阅读清单"&gt;&lt;strong&gt;特别推荐的代码阅读清单：&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/tulios/json-viewer"&gt;JSON Viewer&lt;/a&gt;&lt;/strong&gt; - 学习内容脚本最佳实践&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/darkreader/darkreader"&gt;Dark Reader&lt;/a&gt;&lt;/strong&gt; - 学习性能优化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/1Password/1password-browser-extension"&gt;1Password&lt;/a&gt;&lt;/strong&gt; - 学习企业级架构&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="-快速上手练习"&gt;💡 &lt;strong&gt;快速上手练习&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="练习1修改页面样式"&gt;&lt;strong&gt;练习1：修改页面样式&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;创建一个改变所有网站背景色的插件&lt;/p&gt;</description></item></channel></rss>