Electron 支持的Chrome命令行開關

本節我們來看一下 Chrome 瀏覽器和 Electron 中支持的命令行開關。我們可以將這些命令行開發在 app 模塊的 ready 事件發出之前使用 app.commandLine.appendSwitch 來添加它們到應用的 main 腳本中。

示例:

例如添加一個 remote-debugging-port 到應用的 main 腳本:

const app = require('electron').app;
// 添加命令行開關到腳本
app.commandLine.appendSwitch('remote-debugging-port', '8315');

app.on('ready', function() {
  // ...
});

命令行開關

下面我們是一些 Electron 支持的常用的命令行開關。

--auth-server-whitelist=url

啓用了集成身份驗證的以逗號分隔的服務器列表。

例如:

--auth-server-whitelist='*example.com, *9xkd.com, *jswui'

上述代碼表示任何以 example.com9xkd.comjswui 結尾的 url, 都需要考慮集成驗證。如果沒有 * 前綴,url 必須完全匹配。

--enable-api-filtering-logging

爲以下 API 啓用調用方堆棧日誌記錄(篩選事件):

  • desktopCapturer.getSources() / desktop-capturer-get-sources
  • remote.require() / remote-require
  • remote.getGlobal() / remote-get-builtin
  • remote.getBuiltin() / remote-get-global
  • remote.getCurrentWindow() / remote-get-current-window
  • remote.getCurrentWebContents() / remote-get-current-web-contents
--client-certificate=path

此命令行開關用於設置客戶端的證書文件 path

--ignore-connections-limit=domains

此命令行開關可以忽略用逗號 , 分隔的 domains 列表的連接限制。

--disable-http-cache

用於禁止請求 HTTP 時使用磁盤緩存。

--remote-debugging-port=port

用於在指定的端口通過 HTTP 開啓遠程調試。

--js-flags=flags

用於指定引擎過渡到 JS 引擎。

在啓動 Electron 時,如果我們想在主進程中激活 flags ,它將被轉換。

$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
--proxy-server=address:port

使用一個特定的代理服務器,它將比系統設置的優先級更高,這個開關只有在使用 HTTP 協議時有效,它包含 HTTPSWebSocket 請求。值得注意的是,不是所有的代理服務器都支持 HTTPSWebSocket 請求。

--proxy-bypass-list=hosts

指示 Electron 繞過給定的以分號 : 分隔的主機列表的代理服務器。此開關只有與 --proxy server 一起使用時纔有效。

例如:

app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')

上述代碼中,除了本地地址 (localhost,127.0.0.1 etc), google.com 子域名,以 foo.com 結尾的主機地址 hosts,以及所有在 1.2.3.4:5678 上的地址以外,將會爲所有的 hosts 主機使用代理服務器。

--proxy-pac-url=url

此開關用於在指定的 url 上使用 PAC 腳本。

--no-proxy-server

不使用代理服務並且總是使用直接連接,忽略所有的合理代理標誌。

--host-rules=rules

一個逗號分隔的 rule 列表來控制主機名如何映射。

例如:

  • MAP * 127.0.0.1 強制所有主機名映射到 127.0.0.1
  • MAP *.9xkd.com proxy 強制所有 9xkd.com 子域 使用 "proxy"。
  • MAP test.com [::1]:77 強制 "test.com" 使用 IPv6 迴環地址,也強制使用端口 77
  • MAP * jswui, EXCLUDE www.9xkd.com 重新全部映射到 "jswui",除了"www.9xkd.com"。

這些映射適用於終端網絡請求(TCP 連接和主機解析以直接連接的方式,和 CONNECT 以代理連接,還有終端 host 使用 SOCKS 代理連接)。

--host-resolver-rules=rules

此開關類似 --host-rules ,但是 rules 只適合主機解析。

--ignore-certificate-errors

此開關用於忽略與證書相關的錯誤。

--ppapi-flash-path=path

此開關用於設置 Pepper Flash 插件的路徑 path

--ppapi-flash-version=version

此開關用於設置 Pepper Flash 插件的 version 屬性(即版本號)。

--log-net-log=path

此開關用於啓用需要保存的網絡日誌事件並將其寫入path路徑下。

--disable-renderer-backgrounding

此開關用於防止 Chromium 降低隱藏的渲染進程優先級。這個標誌對所有渲染進程全局有效,如果我們只想禁用一個窗口的節流保護,可以採取 playing silent audio

--enable-logging

此開關用於打印 Chromium 信息輸出到控制檯。

如果在用戶應用加載完成之前解析 app.commandLine.appendSwitch ,這個開關將實效,但是你可以設置 ELECTRON_ENABLE_LOGGING 環境變量來達到相同的效果。

--v=log_level

此開關用於設置默認最大活躍 V-logging 標準,默認爲 0。通常 V-logging 標準值爲正值。

注意這個開關只有在 --enable-logging 開啓時有效。

--vmodule=pattern

給定每個模塊最大的 V-logging 等級,覆蓋 --v 設定的值。例如 my_module=2,foo*=3 將改變所有my_module.*foo*.* 源文件的代碼的日誌等級。

任何包含正斜槓或反斜槓的模式都將針對 整個路徑名進行測試,而不僅僅是模塊。例如 */foo/bar/*=2 會改變foo/bar目錄下源文件的所有代碼的日誌等級。

這個開關只有在 --enable-logging 也被傳遞時才起效:

--enable-logging
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章