.svelte 解析、loader 與 Svelte 的 client 別名。
什麼情況下適合使用 Svelte
- 你希望 popup、options、sidebar 或 new-tab UI 有較小的執行期。
- 你偏好以元件為主、語法精簡的撰寫方式。
- 你希望這個框架在擴充功能頁面與 content script UI 兩種情境都可用。
範本範例
new-svelte

content-svelte

在既有擴充功能中使用
安裝 Svelte:svelte-loader 套件缺少時,建置錯誤會指出與內建工具鏈相符的確切版本。錯誤訊息中的安裝指令會依你專案實際使用的套件管理器來呈現。
開發行為
當 Extension.js 偵測到 Svelte 時,會:- 啟用
.svelte檔案解析。 - 在 JS 框架 pipeline 中設定 Svelte loader,並在開發階段啟用熱重載,讓修改過的元件不必整頁重新載入就能更新。
- 套用 Svelte client 別名(例如
svelte、svelte/store、svelte/reactivity)。
使用範例
在擴充功能頁面中
new App(...) 與 app.$destroy())
在模板所安裝的版本上會拋出 component_api_invalid_new。
在 content_script 檔中
對於 content script,建立掛載節點,並在 default export 中回傳一個 cleanup 函式。這讓 Extension.js 在開發階段可以安全地重新掛載:
最佳實務
- 讓 Svelte 元件專注於 UI,把瀏覽器 API 的協調工作放進專屬模組。
- 在 content script 中,務必回傳 cleanup,讓重新掛載的行為可預期。
- 先在擴充功能頁面使用 Svelte,等到功能範圍清楚後再擴展到 content script UI。
下一步
- 進一步了解 TypeScript 支援。
- 在 Content scripts 中複習 content script 的契約。

