一个构建现代浏览器插件的框架 - Plasmo

开源
Plasmo 框架是一个开源的浏览器扩展 SDK,支持所有主流的浏览器,构建你的插件,无需担心配置文件编写和构建浏览器扩展时的奇怪特性,plasmo 帮助我们屏蔽了底层的差异。

Plasmo 框架是一个开源的浏览器扩展 SDK,支持所有主流的浏览器,构建你的插件,无需担心配置文件编写和构建浏览器扩展时的奇怪特性,plasmo 帮助我们屏蔽了底层的差异。

图片

特性

  • 支持 React + Typescript。
  • 声明式开发,自动生成manifest.json (MV3)。
  • 热加载。
  • .env* 文件。
  • 远程代码打包 (例如:使用 gtag4 )。
  • 自动部署 (通过 BPP )。

基本使用

要使用 plasmo,首先需要满足下面的系统需求:

  • Node.js 16.x 及以上。
  • MacOS、Windows 或 Linux。
  • 强烈推荐使用 pnpm。

然后使用下面的命令初始化项目:

pnpm dlx plasmo init
# 或者使用 npm v7
npm x plasmo init

要跳过命名提示,可以直接通过提供名称作为位置参数:

pnpm dlx plasmo init "My Awesome Extension"
# OR npm v7
npm x plasmo init "My Awesome Extension"

上面的命令会创建一个最简单的 plasmo 浏览器插件项目,结构很简单。

图片

对应的这些文件用途如下所示:

文件名

描述

popup.tsx

该文件导出默认的 React 组件,该组件会渲染到你的弹出页面中。这就是你在插件弹出窗口上所需的全部内容!

assets

Plasmo 会自动生成一些小的图标并将它们从 icon512.png 文件中配置到清单中

package.json

平时使用的 Node.js 项目的元信息声明

.prettierrc.cjs

配置代码格式化

.gitignore

git ignore 文件

readme.md

README 文件

tsconfig.json

TypeScript 配置文件

我们可以构建一个开发版本来支持实时重新加载:

pnpm dev

这将在 build/chrome-mv3-dev 中创建扩展的构建版本,如果要构建生产环境版本,请使用下面的命令:

pnpm build

这将在 build/chrome-mv3-prod 中创建扩展的生产版本。此外还可以选择为构建命令提供 --zip 标志以创建准备上传到网上商店的 zip 包:

pnpm build -- --zip
# OR
npm run build -- --zip
# OR
plasmo build --zip

构建完成后可以在 Chrome 浏览器中去加载我们的插件,首先前往 chrome://extensions 并启用开发者模式。

图片

然后点击 Load Unpacked​ 并导航到扩展程序的 build/chrome-mv3-dev​(或 build/chrome-mv3-prod)目录加载插件。

要查看你的弹出窗口,请单击 Chrome 工具栏上的 pin 图标,然后单击你的扩展程序,将扩展程序固定到 Chrome 工具栏可以更方便访问。

图片

要深入了解如何使用 Plasmo,可以查看工作流部分相关文档 https://docs.plasmo.com/workflows 每个工作流都附带一个模块化的示例,在 GitHub 仓库中也有对应的示例代码。

Git仓库:https://github.com/PlasmoHQ/plasmo。

责任编辑:姜华 来源: Github爱好者
相关推荐

2022-06-13 06:33:04

浏览器浏览器插件

2011-12-15 18:38:57

2017-12-14 15:45:02

2016-09-21 12:34:10

Chrome浏览器插件

2010-01-08 12:14:44

ibmdwAndroid

2012-09-03 10:24:16

果粉浏览器

2009-05-27 08:54:15

浏览器平台Chrome

2019-12-02 13:46:35

浏览器前端开发

2021-06-02 06:14:50

Nyxt浏览器

2011-04-14 15:55:35

WPF.NET

2020-07-06 08:23:11

开源浏览器操作系统

2014-08-18 14:58:25

微软IE

2013-11-22 09:58:36

2023-12-18 08:00:42

JavaScrip框架Lit

2021-08-06 16:52:10

浏览器HTTPS通信

2012-04-25 14:06:45

HTML5

2009-05-04 09:13:12

K-MeleonCCF浏览器

2023-12-21 11:12:31

Node.js.NET开源库

2022-05-30 07:58:52

浏览器插件

2022-01-03 16:15:59

Web浏览器技巧
点赞
收藏

51CTO技术栈公众号