WXT浏览器插件开发中文教程(13)----WXT配置详解之入口加载器

前言

大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

入口加载器 ​

为了在构建时生成清单文件和其他文件,WXT 必须导入每个入口点以获取它们的选项,例如内容脚本的 matches。对于 HTML 文件,这很容易。对于 JS/TS 入口点,过程则更为复杂。

在加载您的 JS/TS 入口点时,它们被导入到 NodeJS 环境中,而不是它们通常运行的 browser 环境中。这可能会导致在 NodeJS 环境中运行仅适用于浏览器的代码时常见的问题,例如缺少全局变量。

WXT 会执行几个预处理步骤,以尽量避免在此过程中出现错误:

  1. 使用 linkedom 提供一组小的浏览器全局变量(window、document 等)。
  2. 使用 @webext-core/fake-browser 创建扩展程序期望的 chrome 和 browser 全局变量的伪造版本。
  3. 预处理 JS/TS 代码,移除 main 函数,然后从文件中摇树移除未使用的代码。

然而,这一过程并不完美。它没有设置浏览器中所有的全局变量,且 API 的行为可能有所不同。因此,您应避免在入口点的 main 函数之外使用浏览器或扩展程序 API!

提示

如果您在导入入口点时遇到错误,请运行 wxt prepare --debug 以查看此过程的更多详细信息。在调试时,WXT 会打印出预处理后的代码,以帮助您识别问题。

一旦环境已经通过 polyfill 补齐,且代码经过预处理后,入口加载器将负责导入您的代码,并从默认导出中提取选项。

最后感谢阅读!欢迎关注我,微信公众号 :倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

相关推荐
福兮说8 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理8 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源9 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源9 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6669 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人9 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)9 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan10 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_10 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒11 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端