浏览器插件开发(未完待续)

353 阅读3分钟

chrome插件已不再支持外部crx安装的方式,必须得上架到google商店


我所了解的方案:

1、油猴(原生):

image.png 点击访问官网

  • 优点:1、多端运行;2、上手快。
  • 缺点:1、要多安装一个油猴包;2、只适合简单的功能

2、油猴(vite-plugin-monkey):

点击访问github

基于vite开发的脚手架

  • 相比上面的优化:前端生态支持,最终也是生成一个js,能开发复杂应用
  • 缺点:如果包托管在greasyfork,它最大只支持2M的大小(写到1.7M了经terser后为1M),后期放不下的话更新可能只能让用户手动cv压缩后的文件进行更新(不走greasyfork)

3、plasmo

点击访问官网

国外专门为浏览器插件开发的脚手架

  • 优点:1、多端打包(主要就是火狐和谷歌);
  • 缺点:1、启动简单,但上手难;2、不是vite,自己实现的脚手架,体量上来之后每次保存都会去重新build生成新的插件目录,时间长

如果你是react开发者,可以试试!如果是vue开发者我建议你放弃,因为官网的demo就一个vue的,包括生态、问题都是围绕都react展开的。

4、基于Vite4+Vue3的Chrome插件开发教程(收费7元)

微信地址

7块钱买个思路和代码,我觉得蛮值的

  • 优点:很多优点,我就不一一列举了
  • 亮点:利用build.js分批打包并合并,巧妙的避开了import/require的情况
  • 缺点:强行要说的话:vite4、js、未使用shadowDom

5、两万字大章带你使用 Vue3、Vite、TypeScript、Less、Pinia、Naive-ui 开发 Chrome 浏览器 Manifest V3 版本插件

CSDN

这也写的蛮好,主要免费的!文章内容思路清晰。

  • 缺点:看似用iframe能随意的使用import了,但由于浏览器的限制iframe内访问父窗口的dom会报错...(可能是我水平不佳吧、到这步我没成功就放弃了)

好用工具推荐

Extensions Reloader:扩展刷新工具,谷歌商店下载


我的方案A(结合方案4、5)

  • 优点:vite5、ts支持、shadowDom隔离css(未采用iframe的方式)、
  • 缺点:只支持chrome、不支持主动更新

因为公司采用的是方案B,所以这里不展开说。

仓库:gitee.com/xiaokuaidey…

我的方案B(方案2)目前公司在用的是这个

  • 优点:vite5、ts支持、支持主动更新、全平台支持
  • 缺点:依赖于油猴(无法使用popup等功能、安装时也要先安装油猴)、未css隔离(靠自己命名方式进行隔离,可能会有子父容器相互影响css的情况)

正式发布流程

1、打包前手动更新版本号package.json里的version(末尾加1)

2、执行npm run build:prod, 打包完成后会在dist目录生成一个js文件

3、访问:包管理地址,使用zhuxiwen帐号登录

4、选择刚刚生成的js文件,并撰写更新日志(会展示给用户更新了哪些内容),然后点击发布新版本

image.png

image.png

5、用户端效果(会强制用户去更新插件、不然不能用)

image.png