使用 WXT 开发浏览器插件(上手使用篇)
WXT (https://wxt.dev/), Next-gen Web Extension Framework. 号称下一代浏览器开发框架. 可一套代码 (code base) 开发支持多个浏览器的插件.
上路~
WXT 提供了脚手架可以方便我们快速进行开发,但是我们得先安装好环境依赖,这里我们使用 npm, 所以需要安装下 node,可以参考 https://nodejs.org/en.
# 直接基于脚手架创建项目
npx wxt@latest init yeshan-bowser-extensoin
cd yeshan-bowser-extensoin
# 安装依赖
npm install --registry=https://registry.npmmirror.com
# 开始调试插件
npm run dev

QAQ - WSL2 下开发遇到的问题
使用 WSL2 进行开发的时候,npm run dev 在 wsl 是没办法自动打开浏览器的,会吐出如下问题:
WARN Cannot open browser when using WSL. Load ".output/chrome-mv3" as an unpacked extension manually
大概看了下 wxt 的实现,它是通过 web-ext 跟进指定的浏览器的 bin 文件(默认为 chromium)启动浏览器装载开发好的插件. 曾经通过文章 chromium-in-wsl2 提到的办法直接在 wsl2 安装了 chromium,还是没能解决此问题. 翻了下官方仓库的 issue,有关联问题 https://github.com/wxt-dev/wxt/issues/55, 本质上是 web-ext 的 BUG issuecomment-1837565780,截至 2024/3/15 还未修复.
解决方法
没办法了,如果还想继续用 wsl 做开发,只能手动加载插件了,在 windows 上打开 chrome 后,地址栏输入 chrome://extensions/ 转到插件管理页 (记得开启开发者模式) -> 加载已解压的扩展程序:

我们要加载的插件目录是在 wsl 中的(即: .output/chrome-mv3/),好在 Window 和 wsl2 的文件文件系统是打通的,可以相互访问,我们可以使用 wslutils 提供的工具获取在 Windows 下可以访问的路径

# 获取 windows 文件管理器可以访问的地址
❯ wslpath -w .output/chrome-mv3/
\\wsl.localhost\Ubuntu-20.04\home\yeshan333\workspace\github\yeshan-bowser-extensoin\.output\chrome-mv3

Done ~, 搞定咯,可以愉快码代码了~
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
使用 WXT 开发浏览器插件(上手使用篇)的更多相关文章
- c语言开发浏览器插件
c语言开发浏览器插件 senk????sec???
- chrome浏览器插件推荐——Vimium 篇
Vimium 是chrome底下的一个插件,所有chrome浏览器或者是基于chrome内核的浏览器(比如我用的Vivaldi)都可以使用这个插件.它提供了大量快捷键来方便键盘党浏览网页.目前在Chr ...
- mac 下基于firebreath 开发多浏览器支持的浏览器插件
mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...
- nodejs + webpack4 + babel6 结合写Chrome浏览器插件记录
最近任务不忙,有时间了看一下Chrome插件相关的东西,于是想用nodejs + webpack写一个能直出插件的小工具. 1.nodejs + babel6 + webpack4 在写之前,是有把它 ...
- blazor wasm开发chrome插件
用blazor(Wasm)开发了一个chrome插件感觉效率挺高的,分享给大家 先简单介绍下WebAssembly的原理: "WebAssembly是一种用于基于堆栈的虚拟机的二进制指令格式 ...
- 基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发
浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...
- php开发工具之火狐浏览器插件
相信做开发的都有一种火狐情怀吧! 下面来介绍下一些自己在php开发工程中用到几个火狐浏览器插件. 1.[firebug]: 这个插件可以说是一个神奇,功能不用过对介绍. 2.[hostAdmin]: ...
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: 1 2. Applet 码 1 3. Applet (awt)跟japplet (swing) ...
- 在NPAPI开发火狐浏览器插件在NPAPI插件
1.插件是什么 插件是一种遵循一定规范的应用程序接口编写出来的程序.插件必须依附于一个宿主程序,为宿主程序提供增强功能.插件的种类有很多,这里主要讨论浏览器插件. IE下利用OLE和COM技术开发的浏 ...
随机推荐
- 求阶乘末尾0的个数(java)
末尾0的个数 题目描述 输入一个正整数,求n!末尾有多少个0?比如n = 10; n! = 3628800 ,所以答案为2 输入描述 输入为一行,n (1 <= n <= 1000)//输 ...
- .NET外挂系列:5. harmony 中补丁参数的有趣玩法(下)
一:背景 1. 讲故事 开局一张表,故事全靠编,为了能够承上启下,先把参数列表放出来. 参数名 说明 __instance 访问非静态方法的实例(类似 this). __result 获取/修改返回值 ...
- 鸿蒙仓颉开发语言实战教程:自定义tabbar
大家周末好呀,今天继续分享仓颉语言开发商城应用的实战教程,今天要做的是tabbar. 大家都知道ArkTs有Tabs和TabContent容器,能够实现上图的样式,满足基本的使用需求.而仓颉就不同了, ...
- .net入行第4年
没错 我在2024-06-28发布了我的三年.net感想 时隔一年,我又来分享了 这一年的时间真的没有经过逛博客园 ,每天都在忙 首先,恭喜一下自己 -- 我现在也算是一个小老板了(虽然主业还是程序员 ...
- MinHook 对.NET底层的 SendMessage 拦截真实案例反思
一:背景 1. 讲故事 上一篇我们说到了 minhook 的一个简单使用,这一篇给大家分享一个 minhook 在 dump 分析中的实战,先看下面的线程栈. 0:044> ~~[138c]s ...
- kubernetes之Ingress工作原理
一.kubernetes集群外部访问的方式 在kubernetes集群中,如果外部的应用需要访问集群内部的服务,可以通过NodePort Service.LoadBalancer Service.In ...
- BAPI_OUTB_DELIVERY_CHANGE 删除DN
"""回滚数据 删除DN, CLEAR: l_header_data_chg,l_header_control_chg. l_header_data_chg-deliv_ ...
- 《机器人SLAM导航核心技术与实战》第1季:第12章_典型自主导航系统
<机器人SLAM导航核心技术与实战>第1季:第12章_典型自主导航系统 视频讲解 [第1季]12.第12章_典型自主导航系统-视频讲解 [第1季]12.1.第12章_典型自主导航系统_ro ...
- FastAPI权限配置:你的系统真的安全吗?
url: /posts/96b6ede65030daa4613ab92da1d739a6/ title: FastAPI权限配置:你的系统真的安全吗? date: 2025-06-26T07:35:3 ...
- 西门子成都工厂的DevSecOps实践
大家好,我是Edison. 4月15日,成都.NET线下技术沙龙活动中,我分享了一个主题<西门子成都工厂的DevSecOps实践>,向大家介绍了我们为什么要做DevSecOps 以及 我们 ...