範本提供的能力
- 可用的專案結構: 從可運作的 manifest、scripts 和原始碼配置起步。
- 針對技術棧的設定: 依框架與執行環境需求挑選範本。
- 更快上手: 幾分鐘內就能從想法走到可執行的擴充功能。
- 一致的預設值: 減少不同專案與團隊成員之間的設定差異。
快速使用
<slug> 替換成你想要的範本名稱。
可用的範本
每個範本都會建立一個最小可執行的擴充功能,並附上可用的manifest.json。展開任一項即可看到它提供的內容、實際指令與導覽影片。
JavaScript
JavaScript
純 ES modules 起點,不需編譯步驟。範本已串接好 在 GitHub 瀏覽完整原始碼: extension-js/examples/javascript
manifest.json、popup 與 content script 進入點,你可以直接執行 extension dev 並立刻開始迭代。當你希望以最小化的設定起步時,選擇這個範本。TypeScript
TypeScript
在 sidebar 面板、content 與 background script 之間提供靜態型別,並已設定 在 GitHub 瀏覽完整原始碼: extension-js/examples/typescript
chrome 與 browser API 的型別。在編譯期就能抓到 manifest、messaging 與權限相關的錯誤。省略 --template 時就會使用它。Svelte
Svelte
編譯期 UI,搭配單檔 在 GitHub 瀏覽完整原始碼: extension-js/examples/svelte
.svelte 元件與極小的 runtime 體積。範本已包含在擴充功能情境中能順利搭配 HMR 撰寫 Svelte 所需的建置設定。Vue
Vue
漸進式設定,搭配 在 GitHub 瀏覽完整原始碼: extension-js/examples/vue
.vue 單檔元件,會建立一個 sidebar 面板加上一個 content script。範本會處理 SFC 編譯與重新載入行為,讓你能專注在 UI。Preact
Preact
與 React 相同的元件模型,但只需 3kB runtime;範本已用標準的 在 GitHub 瀏覽完整原始碼: extension-js/examples/preact
preact/compat alias 設定好,大多數 React 函式庫仍可正常運作。當打包體積重要時,這是合適的選擇。React
React
以元件為核心的 UI 起點,完整相容 Manifest V3(MV3)。側邊欄面板與 content script 以 React 進入點出貨,並已串接好 hot module replacement(HMR)。修改元件後就能直接看到更新。在 GitHub 瀏覽完整原始碼: extension-js/examples/react
運作方式
當你執行create --template=<slug> 時,Extension.js 會抓取所選範本、建立專案檔案,並可選擇性地安裝相依套件。
只有 javascript 範本內建於 CLI 中,所以它可以離線建立,完全不需要網路請求。省略 --template 時的預設範本是 typescript,它和其他名稱一樣會在建立時下載。當這次下載失敗時,create 會退回內建的 javascript 範本並給出網路錯誤。
該目錄包含 6 個群組、大約 50 個範本:starters、sidebar、content scripts、new tab、toolbar action 與特殊資料夾。執行 extension create --help 可以看到全部名稱。
不在目錄中的名稱會以 E_TEMPLATE_NOT_FOUND 失敗,而且什麼都不會建立。下載失敗則會回報為下載錯誤,所以網路問題絕不會看起來像打錯字。
可重現的專案建立
範本語料庫固定在 examples 儲存庫的某個不可變 commit 上。同一個範本建立兩次一定會產生相同的檔案,已出貨的 CLI 也絕不會追著一個會移動的分支跑。 你可以指向另一份語料庫:EXTENSION_CREATE_TEMPLATE_REF 接受分支、tag 或 commit SHA。把它設為 main 就會恢復追隨浮動分支的行為。
從 URL 建立專案
--template 也接受用 GitHub URL 或 ZIP URL 取代目錄中的範本名稱:
EXTENSION_CREATE_TEMPLATE_URL 必須使用 https://。除非設定 EXTENSION_ALLOW_HTTP_TEMPLATE=true,否則 create 會拒絕 http://。
更多範本
在 examples 儲存庫中找到官方範本原始碼: 範本資料夾名稱會直接對應到--template=<slug>。
最佳實務
- 用範本快速建立你的專案結構。
- 從你已熟悉的技術棧範本開始。
- 選擇最符合專案需求的瀏覽器擴充功能情境。

