扩展设置,启用开发者模式,可以查看扩展的背景页,查看代码输出的错误,V3版本已经在Service Worker中了
为和自己使用的浏览器区分,建议使用一个第三方精简版chromium:
https://ungoogled-software.github.io/ungoogled-chromium-binaries/?utm_source=chatgpt.com
边开发边调试,加载未打包的扩展程序,然后进入扩展的详情(右上角)有一个刷新按钮(当代码更新后就点击刷新)
推荐使用vscode扩展:Debugger for Chrome
注意无法连上localhost原因
如果使用了梯子并开启了tun模式,如果没有开启ipv6
需在package.json中:
"scripts": {
"dev": "wxt --host 127.0.0.1 --port 3000", //强制走127.0.0.1 而不是localhost
}
这里启动后,它自己打印的还是localhost,实际已经是127.0.0.1了
安装
文档:https://wxt.dev/guide/installation.html
npx wxt@latest init 安装脚手架
回答几个问题:确认安装吗? 项目名,组件vue,npm
npm install 安装依赖
npm i vue element-plus 安装 element
开发说明
Alt+R修改代码后热重载:浏览器快捷键
npm run dev 调试运行
npm run build 构建
项目结构
{rootDir}/
├─ .output/ # 构建产物输出目录:打包后的扩展文件与最终 manifest.json
├─ .wxt/ # WXT 生成的工程/TS 配置缓存目录(无需手动修改)
├─ assets/ # 需经 WXT 处理的静态资源(CSS、图片、字体等)
├─ components/ # 自动按需导入的 UI 组件目录(Vue 组件放这里可直接使用)
├─ composables/ # Vue 组合式函数(可复用逻辑),默认支持自动导入
├─ entrypoints/ # 扩展入口脚本与页面(background/content/popup/options 等在此)
├─ modules/ # 本地 WXT 模块(扩展 WXT 功能的插件片段)
├─ public/ # 原样复制到输出目录的静态文件(不经过 WXT 处理)
├─ utils/ # 自动导入的通用工具函数(与 components/composables 类似可全局用)
├─ .env # 开发环境变量(本地开发用)
├─ .env.publish # 发布阶段环境变量(如商店凭据/CI 设置)
├─ app.config.ts # 运行时配置(可通过 import.meta 访问的应用级配置)
├─ package.json # 包管理配置与脚本命令入口
├─ tsconfig.json # TypeScript 编译配置
├─ web-ext.config.ts # 调试/启动浏览器的 web-ext 配置
└─ wxt.config.ts # WXT 主配置(入口、权限、构建目标、打包与开发行为)
开发模式调式
项目目录下创建web-ext.config.ts:
import { defineWebExtConfig } from 'wxt';
import { resolve } from 'node:path';
export default defineWebExtConfig({
binaries: { // 中文注释:为不同目标浏览器指定可执行文件
chrome: 'C:\\Users\\lee\\AppData\\Local\\Chromium\\Application\\chrome.exe', // 中文注释:指定 Chrome Beta
// Linux 示例:
// chrome: '/usr/bin/google-chrome-beta', // 中文注释:Linux 常见路径(按发行版不同)
// 还可以设置火狐,edge等浏览器
},
chromiumProfile: resolve('chrome-data'), //持久化浏览器数据,需要先手动创建这个文件夹,不然会出错
keepProfileChanges: true, //保持浏览器数据
// chromiumArgs: ['--user-data-dir=./.wxt/chrome-data'], // linux持久化浏览器数据
// disabled: true, // 禁用打开浏览器,此配置启用,本页其它配置不生效
});
options设置不能整页的bug
构建为原生扩展代码后,删除manifest.json的 "options_ui": { "page": "options.html" }
即便你设置了它构建后都会覆盖,这可能是一个bug
下载chrome商店扩展
自己拼接URL
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=114.0&acceptformat=crx2,crx3&x=id%3Dfcoeoabgfenejglbffodgkkbkcdhcgfn%26uc