本节我们来看一下 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










网友评论