
框架选择

Next-gen Web Extension Framework -- WXT
WXT provides the best developer experience, making it quick, easy, and fun to develop web extensions. With built-in utilities for building, zipping, and publishing your extension, it’s easy to get started.
Get Started

Introduction to Plasmo -- Plasmo
Plasmo is the end-to-end platform for browser extension developers - the easiest way to Build, Test and Ship browser extensions.
Plasmo Docs
在所有页面执行
"all_frames": true
网页与background通讯
发送端
export const sendMessageToBackground = (
type: MessageType,
payload?: any,
target = [ReceiveTarget.IFRAME, ReceiveTarget.MAIN_WINDOW]
) => {
const extensionId = 'ibknboednigkepnildpeeablokkgingp';
const message = {
type, // 类型
payload, // 额外数据
target,
};
// 先放进队列
if (!GlobalStore.pluginLoaded) {
messageQueue.push(message);
return;
}
console.log('发送消息', message);
chrome.runtime.sendMessage(extensionId, message, (response) => {
console.log(response);
});
};
接收端
// 外部通讯,比如来自web的消息通讯
chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse) {
sendToContent(request);
});
热更新
Read more

1.5G到200M,TurboRepo Docker镜像优化指南:轻松打造轻量级镜像
最近往我的TurboRepo中添加了几个后端项目,然后使用Docker部署到服务器上,网上的TurboRepo的打包部署教程比较少,而且有些文章给的方法让Docker的镜像变得很大,所以我这里记录一下我是怎么减少镜像大小的。

治愈画风 | 吉卜力风格的Shadcn主题分享 附上安装教程
你是否也喜欢吉卜力动画那种温暖、治愈的风格?今天为大家推荐一个超级精美的 Shadcn UI 主题

Swift接入Apollo GraphQL并使用CLI生成代码
✏️ 笔者是GraphQL深度爱好者,在学习Swift开发过程中也希望能够将其引入,过程中也遇到一些包管理问题,参阅了官网文档后成功接入,下面是整个过程。