本節我們來看一下 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.com
、 9xkd.com
、 jswui
結尾的 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
協議時有效,它包含 HTTPS
和 WebSocket
請求。值得注意的是,不是所有的代理服務器都支持 HTTPS
和 WebSocket
請求。
--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