Skip to main content
請依穩定的錯誤碼做分支判斷,絕不要依訊息文字。 每一個失敗信封都會帶上同一張表中的某個 E_* 錯誤碼。錯誤碼只會新增,絕不會被改名或移除。錯誤碼旁邊的訊息屬於自由文案,任何版本都可能更動。 這張表隨 extension-develop/contract/codes.json 一起發布,參見 結果信封。

用法

專案

Manifest

編譯

E_COMPILE 和 E_FIRST_COMPILE 是編譯失敗時的頂層錯誤碼。上表中有十五列會出現在該影格的 error.details 裡,每條診斷一個:E_MODULE_NOT_FOUND、E_CONTENT_SCRIPT_SYNTAX、E_CSS_PARSE、E_ENTRY_NOT_FOUND、E_ASSET_MISSING、E_SCRIPT_DEP_MISSING、E_RESERVED_FOLDER、E_CSS_PREPROCESSOR_MISSING、E_CSS_DEAD_REF、E_LOCALES_LAYOUT、E_WAR_INVALID、E_BACKGROUND_REQUIRED、E_REMOTE_RESOURCE_BLOCKED、E_PERF_BUDGET 和 E_ENV_NO_MATCH。同樣這些錯誤碼也會以 E_CODE: 前綴出現在成功建置的 warnings 字串開頭。見編譯診斷。

遠端專案與網路

瀏覽器執行檔與啟動

瀏覽器執行階段

除錯協定

開發伺服器

就緒契約

控制通道

日誌

建立

其他所有情況

折疊名稱與舊名稱

codes.json 在這張表之外還帶了兩份額外對應:
  • folded 把較細的清單名稱對應到已發布的家族錯誤碼上。例如 E_ARG_REQUIRED 會折疊為 E_ARGS,E_BROWSER_NOT_INSTALLED 會折疊為 E_BROWSER_NOT_FOUND。
  • legacy 把信封出現之前的三種命名慣例對應到這張表上:ready.json 的 snake_case 錯誤碼(profile_locked 對應 E_PROFILE_LOCKED)、PascalCase 的錯誤名稱(TargetNotFound 對應 E_TARGET_NOT_FOUND),以及 kebab-case 的 doctor 檢查項 id(eval-token 對應 E_TOKEN_MISSING)。
如果你的取用端遇到表中沒有的名稱,請先透過這些對應解析出來,再做分支判斷。

下一步