Skip to main content
隨時重新載入執行中的擴充功能或分頁。 dev 工作階段在檔案變更時本來就會自動重新載入。reload 針對的是自動重新載入看不到的情況:你手動改動的狀態、卡住的 service worker,或是需要在兩次執行之間取得乾淨情境的測試。 工作階段必須在控制通道解鎖的狀態下執行:用 extension dev --allow-control 啟動它。被拒絕時,錯誤訊息會指出缺少的旗標。

何時使用 reload

  • 背景 worker 保留了錯誤的記憶體狀態,你想乾淨地重啟一次。
  • 某個指令稿寫入了 storage 或觸發了一段流程,之後需要一個全新的情境。
  • 你改了監看器視野之外的東西,想強制重新讀取。

用法

引數與旗標

各個 context 分別會重新載入什麼

  • background 會重新啟動擴充功能本身,連帶重啟 service worker 並重新讀取 manifest。
  • content 會重新載入承載目標 content script 的分頁,讓指令稿重新注入。
  • page 只是把目標分頁當成一般頁面重新載入。
當作用中分頁不是你要的那一個時,用 inspect --list-tabs 找出數字形式的分頁 id。

失敗情境

  • 該瀏覽器沒有對應的工作階段:E_SESSION_NOT_FOUND,並附上要執行的完整 extension dev --allow-control 指令。
  • 工作階段執行時沒有帶 --allow-control:連線會被拒絕,錯誤訊息會指出這個旗標。
  • --tab 指定的 id 已經不存在:E_TARGET_NOT_FOUND
  • 呼叫的耗時超過 --timeoutE_TIMEOUT
成功時結束碼是 0,任何失敗都是 1。機器消費端應該讀取 --output json 輸出的信封(參見 結果信封)。

後續步驟

  • 重新載入與 HMR 了解自動重新載入已經涵蓋了哪些情況。
  • logsinspect 確認重新載入後的情境是乾淨的。
  • doctor 診斷拒絕這次呼叫的工作階段。
  • 除錯 中閱讀更完整的除錯流程。