跳到主要內容

支援的命令列 Switches

Electron 支援的命令列 switches。

您可以使用 app.commandLine.appendSwitch 在您的應用程式主腳本中,於 ready 事件發射之前,附加這些 switches app 模組

const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
app.commandLine.appendSwitch('host-rules', 'MAP * 127.0.0.1')

app.whenReady().then(() => {
// Your code here
})

Electron CLI 旗標

--auth-server-whitelist=url

以逗號分隔的伺服器清單,用於啟用整合式驗證。

例如

--auth-server-whitelist='*example.com, *foobar.com, *baz'

那麼任何以 example.comfoobar.combaz 結尾的 url 都將被考慮用於整合式驗證。如果沒有 * 前綴,則 URL 必須完全匹配。

--auth-negotiate-delegate-whitelist=url

以逗號分隔的伺服器清單,用於需要委派使用者憑證。如果沒有 * 前綴,則 URL 必須完全匹配。

--disable-ntlm-v2

在 POSIX 平台上停用 NTLM v2,在其他地方無效。

--disable-http-cache

停用 HTTP 請求的磁碟快取。

--disable-http2

停用 HTTP/2 和 SPDY/3.1 協定。

--disable-renderer-backgrounding

防止 Chromium 降低不可見頁面的渲染器程序優先順序。

此旗標適用於所有渲染器程序,如果您只想在一個視窗中停用節流,您可以採用 播放靜音音訊 的技巧。

--disk-cache-size=size

強制磁碟快取使用的最大磁碟空間,以位元組為單位。

--enable-logging[=file]

將 Chromium 的記錄列印到 stderr(或記錄檔)。

ELECTRON_ENABLE_LOGGING 環境變數與傳遞 --enable-logging 具有相同的效果。

傳遞 --enable-logging 將導致記錄列印在 stderr 上。傳遞 --enable-logging=file 將導致記錄儲存到 --log-file=... 指定的檔案,如果未指定 --log-file,則儲存到使用者資料目錄中的 electron_debug.log

注意: 在 Windows 上,來自子程序的記錄無法傳送到 stderr。記錄到檔案是在 Windows 上收集記錄最可靠的方式。

另請參閱 --log-file--log-level--v--vmodule

--force-fieldtrials=trials

要強制啟用或停用的 Field trials。

例如:WebRTC-Audio-Red-For-Opus/Enabled/

--host-rules=rules

以逗號分隔的 rules 清單,用於控制如何對應主機名稱。

例如

  • MAP * 127.0.0.1 強制將所有主機名稱對應到 127.0.0.1
  • MAP *.google.com proxy 強制將所有 google.com 子網域解析為「proxy」。
  • MAP test.com [::1]:77 強制將「test.com」解析為 IPv6 loopback。也將強制結果 socket 位址的埠為 77。
  • MAP * baz, EXCLUDE www.google.com 將所有內容重新對應到「baz」,除了「www.google.com」之外。

這些對應適用於網路請求中的端點主機(直接連線中的 TCP 連線和主機解析器,以及 HTTP proxy 連線中的 CONNECT,以及 SOCKS proxy 連線中的端點主機)。

--host-resolver-rules=rules

類似於 --host-rules,但這些 rules 僅適用於主機解析器。

--ignore-certificate-errors

忽略憑證相關錯誤。

--ignore-connections-limit=domains

忽略以 , 分隔的 domains 清單的連線限制。

--js-flags=flags

指定傳遞給 V8 引擎 的旗標。為了在主程序中啟用 flags,必須在啟動時傳遞此 switch。

$ electron --js-flags="--harmony_proxies --harmony_collections" your-app

在您的終端機中執行 node --v8-optionselectron --js-flags="--help" 以取得可用旗標的清單。這些可用於啟用早期階段的 JavaScript 功能,或記錄和操作垃圾收集等等。

例如,追蹤 V8 優化和反優化

$ electron --js-flags="--trace-opt --trace-deopt" your-app

--lang

設定自訂地區設定。

--log-file=path

如果指定了 --enable-logging,記錄將寫入給定的路徑。父目錄必須存在。

設定 ELECTRON_LOG_FILE 環境變數等同於傳遞此旗標。如果兩者都存在,則命令列 switch 優先。

--log-net-log=path

啟用儲存網路記錄事件並將其寫入 path

--log-level=N

--enable-logging 一起使用時,設定記錄的詳細程度。N 應為 Chrome 的 LogSeverities 之一。

請注意,Chromium 中的兩種互補記錄機制 -- LOG()VLOG() -- 由不同的 switches 控制。--log-level 控制 LOG() 訊息,而 --v--vmodule 控制 VLOG() 訊息。因此,您可能需要結合使用這三個 switches,具體取決於您想要的粒度和您嘗試監看的程式碼所做的記錄呼叫。

請參閱 Chromium Logging 原始碼,以取得有關 LOG()VLOG() 如何互動的更多資訊。粗略地說,VLOG() 可以被認為是 LOG(INFO) 內部的子層級/每個模組層級,以控制 LOG(INFO) 資料的湧入。

另請參閱 --enable-logging--log-level--v--vmodule

--no-proxy-server

不要使用 proxy 伺服器,並始終建立直接連線。覆寫任何其他傳遞的 proxy 伺服器旗標。

--no-sandbox

停用 Chromium sandbox。強制渲染器程序和 Chromium 輔助程序在未沙箱化的情況下執行。僅應在測試中使用。

--proxy-bypass-list=hosts

指示 Electron 繞過給定的以分號分隔的主機清單的 proxy 伺服器。此旗標僅在與 --proxy-server 搭配使用時才有效。

例如

const { app } = require('electron')
app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')

將對所有主機使用 proxy 伺服器,但本機位址(localhost127.0.0.1 等)、google.com 子網域、包含後綴 foo.com 的主機以及 1.2.3.4:5678 的任何內容除外。

--proxy-pac-url=url

使用指定 url 上的 PAC 腳本。

--proxy-server=address:port

使用指定的 proxy 伺服器,這會覆寫系統設定。此 switch 僅影響使用 HTTP 協定的請求,包括 HTTPS 和 WebSocket 請求。同樣值得注意的是,並非所有 proxy 伺服器都支援 HTTPS 和 WebSocket 請求。proxy URL 不支援使用者名稱和密碼驗證 根據 Chromium 問題

--remote-debugging-port=port

在指定的 port 上啟用透過 HTTP 的遠端偵錯。

--v=log_level

給出預設的最大活動 V-logging 層級;0 是預設值。通常正值用於 V-logging 層級。

此 switch 僅在也傳遞 --enable-logging 時才有效。

另請參閱 --enable-logging--log-level--vmodule

--vmodule=pattern

給出每個模組的最大 V-logging 層級,以覆寫 --v 給出的值。例如,my_module=2,foo*=3 將變更原始碼檔案 my_module.*foo*.* 中所有程式碼的記錄層級。

任何包含正斜線或反斜線的模式都將針對整個路徑名稱而不僅僅是模組進行測試。例如,*/foo/bar/*=2 將變更 foo/bar 目錄下原始碼檔案中所有程式碼的記錄層級。

此 switch 僅在也傳遞 --enable-logging 時才有效。

另請參閱 --enable-logging--log-level--v

--force_high_performance_gpu

在有多個 GPU 可用時,強制使用獨立 GPU。

--force_low_power_gpu

在有多個 GPU 可用時,強制使用整合式 GPU。

--xdg-portal-required-version=version

設定 XDG portal 實作的最低要求版本為 version,以便在 linux 上對檔案對話方塊使用 portal 後端。當所需版本不可用時,檔案對話方塊將回退到使用 gtk 或 kde,具體取決於桌面環境。目前的預設值設定為 3

Node.js 旗標

Electron 支援 Node.js 支援的某些 CLI 旗標

注意: 當 Electron 未在 ELECTRON_RUN_AS_NODE 中執行時,將不受支援的命令列 switches 傳遞給 Electron 將不會產生任何效果。

--inspect-brk\[=\[host:]port]

在主機上啟動 inspector:port並在使用者腳本開始時中斷。預設主機:port是 127.0.0.1:9229。

別名為 --debug-brk=[host:]port

--inspect-brk-node[=[host:]port]

host:port 上啟動 inspector,並在 inspector 可用時執行的第一個內部 JavaScript 腳本開始時中斷。預設 host:port127.0.0.1:9229

--inspect-port=\[host:]port

設定在啟動 inspector 時要使用的 host:port。透過傳送 SIGUSR1 訊號啟動 inspector 時很有用。預設主機為 127.0.0.1

別名為 --debug-port=[host:]port

--inspect\[=\[host:]port]

host:port 上啟動 inspector。預設值為 127.0.0.1:9229

V8 inspector 整合允許 Chrome DevTools 和 IDE 等工具偵錯和分析 Electron 實例。這些工具透過 TCP 埠連接到 Electron 實例,並使用 Chrome DevTools Protocol 進行通訊。

請參閱偵錯主程序指南以取得更多詳細資訊。

別名為 --debug[=[host:]port

--inspect-publish-uid=stderr,http

指定 inspector web socket url 曝光的方式。

依預設,inspector websocket url 在 stderr 中可用,並在 http://host:port/json/list 上的 /json/list 端點下可用。

--no-deprecation

靜音棄用警告。

--throw-deprecation

為棄用拋出錯誤。

--trace-deprecation

列印棄用的堆疊追蹤。

--trace-warnings

列印程序警告(包括棄用)的堆疊追蹤。

--dns-result-order=order

在 Node.js dns.lookup()dnsPromises.lookup() 函數中設定 verbatim 參數的預設值。該值可以是

  • ipv4first:設定預設 verbatim false
  • verbatim:設定預設 verbatim true

預設值為 verbatim,並且 dns.setDefaultResultOrder() 的優先順序高於 --dns-result-order

--diagnostic-dir=directory

設定所有 Node.js 診斷輸出檔案寫入的目錄。預設為目前工作目錄。

影響 v8.setHeapSnapshotNearHeapLimit 的預設輸出目錄。