preview 不會編譯你的專案,它會載入既有的未打包擴充功能根目錄,並執行瀏覽器啟動流程。
何時使用 preview
- 不重新建置,直接執行既有的建置輸出。
- 快速比較不同瀏覽器目標下的打包後行為。
- 除錯與正式版產物有關、而非開發/監看模式的執行階段問題。
Preview 指令功能
preview只執行,不建置。當dist/<browser>輸出存在時優先使用。你也可以指向其他已包含manifest.json的未打包擴充功能資料夾。
用法
preview 如何選擇要執行的內容
preview 會依序檢查這些位置:
- 你傳入的
--output-path <dir>。它的優先權高於其他一切。 - 所選瀏覽器目標的
dist/<browser>。 - 你提供的專案路徑或目前工作資料夾。
manifest.json 的未打包擴充功能。是否在同一個指令中執行過 build 並不重要。
引數與旗標
--author 與 --author-mode 是 --debug 的隱藏、已淘汰別名。
瀏覽器支援
preview 沒有 Safari 路徑。傳入 --browser safari(或 webkit-based)會以 E_COMMAND_UNSUPPORTED_FOR_TARGET 結束。Safari 是受支援的瀏覽器,但這個指令無法啟動它。Safari 目標請改用 dev 或 build。
遠端 URL 與 light 模式
當路徑引數是遠端http(s) URL 時,preview 會自動設定 EXTJS_LIGHT=1。這會讓下載回來的擴充功能以 light 模式啟動。若你事先自行設定 EXTJS_LIGHT,就會覆寫這個行為。
自動化中介資料
preview 會把就緒中介資料寫入:
dist/extension-js/<browser>/ready.json
--no-browser 流程,它能提供確定性的指令狀態:
starting:指令初始化中ready:僅執行的驗證完成error:缺少必要輸出或啟動失敗runId與startedAt:讓腳本/代理可關聯特定工作階段
preview 沒有 --wait 閘道旗標。要把 preview 自動化,直接讀取 ready.json。
用 --output json 取得機器可讀輸出
--output json 會在 stdout 印出一個 schema-1 信封:
- 執行成功會印出
status: "ready"影格。它的value帶有專案路徑與被預覽的瀏覽器清單。 - 沒有東西可預覽時,該影格為
ok: false,並帶status: "not-found"與error.code: "E_PREVIEW_NO_DIST"。它的提示會請你先執行extension build。 - 其他失敗會印出
ok: false與status: "failed",接著行程以1結束。
記錄旗標
這些旗標屬於實驗性質,可能在次要版本之間變動。共用全域選項
也支援 全域旗標。範例
預覽本地擴充功能
在 Edge 與 Chrome 中預覽
預覽但不啟動瀏覽器
行為說明
preview只執行,從不編譯專案。preview優先使用既有的建置輸出(dist/<browser>),但可退回到其他未打包擴充功能根目錄。preview不會執行監看模式或 Hot Module Replacement (HMR)。- 腳本/代理請依賴
ready.json,避免解析終端機輸出。
最佳實務
- 測試全新的正式版產物時,先執行
build再preview。 - 當你的未打包擴充功能不在預設的專案輸出位置時,請傳入專案路徑引數。
- 使用
--browser在打包前跨目標驗證行為。
後續步驟
- 用
start在一個步驟完成建置與啟動。 - 用
build產生正式版產物。 - 在
extension.config.js中集中設定共用預設值。 - 在 環境變數 中了解設定的環境檔載入行為。

