本节我们来看一下 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。