.svelte 解析、loader 设置以及 Svelte 客户端别名。
什么场景适合用 Svelte
- 你希望 popup、options、sidebar 或新标签页 UI 拥有更小的运行时。
- 你偏好以组件为先、语法简洁的写法。
- 你希望选择一个既能用于扩展页面、又能用于 content script UI 挂载的框架。
模板示例
new-svelte

content-svelte

在现有扩展中使用
安装 Svelte:svelte-loader 包缺失时,构建报错会指明与内置工具链匹配的确切版本。报错中的安装命令会按你项目实际使用的包管理器给出。
开发期行为
当 Extension.js 检测到 Svelte 时,会:- 启用
.svelte文件解析。 - 在 JS 框架管线中配置 Svelte loader,并在开发期启用热重载,让改动过的组件无需整页刷新就能更新。
- 应用 Svelte 客户端别名(例如
svelte、svelte/store和svelte/reactivity)。
用法示例
在扩展页面中
new App(...) 与 app.$destroy())
在模板所安装的版本上会抛出 component_api_invalid_new。
在 content_script 文件中
对于 content script,创建一个挂载节点,并在默认导出中返回一个清理函数。这样 Extension.js 可以在开发期安全地重新挂载:
最佳实践
- 让 Svelte 组件专注于 UI,把浏览器 API 的编排放到专门的模块里。
- 在 content script 里始终返回清理函数,保证重新挂载行为可预期。
- 先在扩展页面里使用 Svelte,等功能边界清晰后,再扩展到 content script UI。
下一步
- 进一步了解 TypeScript 支持。
- 阅读 Content scripts 中的 content script 契约。

