WXT浏览器插件开发中文教程(24)----ES 模块支持

前言

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

ES 模块 [​](#ES 模块 "#es-modules")

您的源代码应始终以 ES 模块的形式编写。不过,您可以选择是否将入口点打包为 ES 模块。

HTML页面

Vite 仅支持从 HTML 页面打包 JavaScript 为 ES 模块。请确保您的 <script> 标签中添加了 type="module"

html 复制代码
- <script src="./main.ts"></script> 
+ <script src="./main.ts" type="module"></script> 

背景脚本

默认情况下,背景脚本将被打包为单个文件的 IIFE。您可以通过在背景入口点中设置 type: "module" 来更改此行为:

ts 复制代码
export default defineBackground({
  type: 'module', 
  main() {
    // ...
  },
});

这将把输出格式改为 ES 模块,启用背景脚本和 HTML 页面之间的代码分割,并在清单文件中设置 "type": "module"

警告

仅 MV3 支持 ES 模块背景脚本/服务工作线程。当目标为 MV2 时,type 选项将被忽略,背景脚本始终被打包为单个文件的 IIFE。

内容脚本

WXT 尚未内置支持将内容脚本打包为 ES 模块。计划是添加对代码块的支持以减小打包体积,但暂时不支持 HMR。由于存在一些技术问题,实现 HMR 的通用解决方案是不可能的。详情请参阅 Content Script ESM Support #357

如果您无法等待,需要立即使用 ES 模块支持,您可以手动实现 ES 模块支持。请参阅 ESM Content Script UI 示例以了解如何操作。

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

相关推荐
Luffe船长5 分钟前
elementUI点击浏览table所选行数据查看文档
javascript·elementui·vue
入行IT两年半7 分钟前
element-plus 单选组件 el-radio,选不上,又没报错,直接复制官网也不行解决方案
前端·vue.js·elementui
waterHBO8 分钟前
一个小小的 flask app, 几个小工具,拼凑一下
javascript·vscode·python·flask·web app·agent mode·vibe coding
Bl_a_ck19 分钟前
【JS进阶】ES5 实现继承的几种方式
开发语言·前端·javascript
独立开阀者_FwtCoder22 分钟前
一个 Cursor mdc 自动生成器,基于Gemini 2.5,很实用!
前端·javascript·github
界面开发小八哥28 分钟前
「Java EE开发指南」如何使用MyEclipse在Web项目中用Web Fragments?
java·前端·ide·java-ee·eclipse·myeclipse
听说名字越长的就越牛逼30 分钟前
Mendix,在开发组件之前,需要了解的部分知识
前端·react.js·低代码
wordbaby30 分钟前
React 19 新特性:用 use 实现服务端和客户端组件的数据无缝协作
前端·react.js
去伪存真33 分钟前
盘点那些误导新手的报错
前端
FogLetter1 小时前
JavaScript 内存探秘:栈与堆的奇幻之旅
javascript·后端