跳轉到主要內容
啟動已建置的擴充功能輸出進行接近正式版的手動測試。 preview 不會編譯你的專案,它會載入既有的未打包擴充功能根目錄,並執行瀏覽器啟動流程。

何時使用 preview

  • 不重新建置,直接執行既有的建置輸出。
  • 快速比較不同瀏覽器目標下的打包後行為。
  • 除錯與正式版產物有關、而非開發/監看模式的執行階段問題。

Preview 指令功能

功能你可以得到的能力
建置輸出驗證不重新建置即可測試真實的正式版產物
瀏覽器目標檢查將編譯後的輸出對所選瀏覽器目標執行
Runner 控制依工作流程決定是否啟動瀏覽器 runner
快速手動 QA在發布前快速驗證可上架的行為
preview 只執行,不建置。當 dist/<browser> 輸出存在時優先使用。你也可以指向其他已包含 manifest.json 的未打包擴充功能資料夾。

用法

extension preview [project-path] [options]
如果省略路徑,Extension.js 會使用目前工作資料夾。

preview 如何選擇要執行的內容

preview 會依序檢查這些位置:
  1. 所選瀏覽器目標的 dist/<browser>
  2. 你提供的專案路徑或目前工作資料夾。
該資料夾必須包含含有 manifest.json 的未打包擴充功能。是否在同一個指令中執行過 build 並不重要。

引數與旗標

旗標別名用途預設值
[path]-從專案路徑預覽已建置的擴充功能。process.cwd()
--browser <browser>-瀏覽器/引擎目標(chromiumchromeedgefirefox 等)。chromium
--profile <path|boolean>-瀏覽器設定檔路徑,或布林模式。全新設定檔
--chromium-binary <path>-自訂 Chromium 系列執行檔路徑系統預設
--gecko-binary <path>--firefox-binary自訂 Gecko 系列執行檔路徑系統預設
--starting-url <url>-啟動瀏覽器後開啟的 URL。未設
--no-browser-略過瀏覽器啟動。預設啟動瀏覽器
--port <port>-啟用 runner 時的 runner/devtools 埠號。設 0 讓作業系統指定。8080
--host <host>-開發伺服器要綁定的主機。Docker/dev container 請用 0.0.0.0127.0.0.1
--extensions <list>-以逗號分隔的搭配擴充功能或 store URL。未設
--author--author-mode啟用維護者診斷。停用

自動化中介資料

preview 會把就緒中介資料寫入:
  • dist/extension-js/<browser>/ready.json
對於 --no-browser 流程,它能提供確定性的指令狀態:
  • starting:指令初始化中
  • ready:僅執行的驗證完成
  • error:缺少必要輸出或啟動失敗
  • runIdstartedAt:讓腳本/代理可關聯特定工作階段
preview 沒有 --wait 閘道旗標。要把 preview 自動化,直接讀取 ready.json

記錄旗標

旗標用途預設值
--logs <off|error|warn|info|debug|trace|all>最低記錄等級。off
--log-context <list|all>情境過濾(backgroundcontentpagesidebarpopupoptionsdevtools)。all
--log-format <pretty|json|ndjson>logger 輸出格式。pretty
--no-log-timestamps在 pretty 模式停用時間戳。預設啟用時間戳
--no-log-color在 pretty 模式停用顏色。預設啟用顏色
--log-url <pattern>以 URL 子字串/正則過濾記錄事件。未設
--log-tab <id>以分頁 ID 過濾記錄事件。未設

原始碼檢視旗標(preview 不支援)

CLI 會在解析前偵測到這些旗標並以錯誤結束。請改用 dev --source ...
旗標preview 支援度
--source [url]不支援(指令會以指引訊息結束)
--watch-source [boolean]不支援(指令會以指引訊息結束)
--source-format <pretty|json|ndjson>不支援(指令會以指引訊息結束)
--source-summary [boolean]不支援(指令會以指引訊息結束)
--source-meta [boolean]不支援(指令會以指引訊息結束)
--source-probe <selectors>不支援(指令會以指引訊息結束)
--source-tree <off|root-only>不支援(指令會以指引訊息結束)
--source-console [boolean]不支援(指令會以指引訊息結束)
--source-dom [boolean]不支援(指令會以指引訊息結束)
--source-max-bytes <bytes>不支援(指令會以指引訊息結束)
--source-redact <off|safe|strict>不支援(指令會以指引訊息結束)
--source-include-shadow <off|open-only|all>不支援(指令會以指引訊息結束)
--source-diff [boolean]不支援(指令會以指引訊息結束)

共用全域選項

也支援 全域旗標

範例

預覽本地擴充功能

extension preview ./my-extension

在 Edge 與 Chrome 中預覽

extension preview ./my-extension --browser=edge,chrome

預覽但不啟動瀏覽器

extension preview ./my-extension --no-browser

行為說明

  • preview 只執行,從不編譯專案。
  • preview 優先使用既有的建置輸出(dist/<browser>),但可退回到其他未打包擴充功能根目錄。
  • preview 不會執行監看模式或 Hot Module Replacement (HMR)。
  • preview 不支援原始碼檢視旗標;該流程請使用 dev
  • 腳本/代理請依賴 ready.json,避免解析終端機輸出。

最佳實務

  • 測試全新的正式版產物時,先執行 buildpreview
  • 當你的未打包擴充功能不在預設的專案輸出位置時,請傳入專案路徑引數。
  • 使用 --browser 在打包前跨目標驗證行為。

後續步驟