chrome插件已不再支持外部crx安装的方式,必须得上架到google商店
我所了解的方案:
1、油猴(原生):
- 优点:1、多端运行;2、上手快。
- 缺点:1、要多安装一个油猴包;2、只适合简单的功能
2、油猴(vite-plugin-monkey):
基于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 版本插件
这也写的蛮好,主要免费的!文章内容思路清晰。
- 缺点:看似用iframe能随意的使用import了,但由于浏览器的限制iframe内访问父窗口的dom会报错...(可能是我水平不佳吧、到这步我没成功就放弃了)
好用工具推荐
Extensions Reloader:扩展刷新工具,谷歌商店下载
我的方案A(结合方案4、5)
- 优点:vite5、ts支持、shadowDom隔离css(未采用iframe的方式)、
- 缺点:只支持chrome、不支持主动更新
因为公司采用的是方案B,所以这里不展开说。
我的方案B(方案2)目前公司在用的是这个
- 优点:vite5、ts支持、支持主动更新、全平台支持
- 缺点:依赖于油猴(无法使用popup等功能、安装时也要先安装油猴)、未css隔离(靠自己命名方式进行隔离,可能会有子父容器相互影响css的情况)