支持的命令行开关
Electron支持的命令行开关.
您可以在app 模块的ready事件生效之前,使用app.commandLine.appendSwitch将它们附加到您的应用程序的主要脚本中:
const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
app.commandLine.appendSwitch('host-rules', 'MAP * 127.0.0.1')
app.whenReady().then(() => {
// 在这里写入你的代码
})
Electron CLI 标志
--auth-server-whitelist=url
启用了集成身份验证的以逗号分隔的服务器列表。
例如:
--auth-server-whitelist='*example.com, *foobar.com, *baz'
则任何以example.com
, foobar.com
, baz
结尾的url
, 都需要考虑集成验证. 没有 *
前缀的 URL 必须完全匹配。
--auth-negotiate-delegate-whitelist=url
需要授权用户凭据的以逗号分隔的服务器列表。 没有 *
前缀的 URL 必须完全匹配。
--disable-ntlm-v2
禁用NTLM v2的posix平台,对别处没有影响。
--disable-http-cache
禁用HTTP请求的磁盘缓存.
--disable-http2
禁用HTTP/2和SPDY/3.1协议.
--disable-renderer-backgrounding
防止Chromium降低不可见的页面渲染进程的优先级.
这个标识是全局的, 影响所有渲染进程. 如果你只想禁用一个窗口的节流保护,你可以采取playing silent audio.
--disk-cache-size=size
强制磁盘缓存使用的最大磁盘空间(以字节为单位)。
--enable-logging[=file]
打印 Chromium's 日志到 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
试用特性将强制启用或禁用。
例如: WebRTC-Audio-Red-For-Opus/Enabled/
--host-rules=rules
以逗号分隔的rules
列表,用于控制主机名的映射方式
例如:
MAP * 127.0.0.1
强制将所有主机名映射到127.0.0.1MAP *.google.com proxy
强制所有google.com子域名解析到"proxy".MAP test.com [::1]:77
强制将 "test.com" 解析到 IPv6 环回接口。 也会强制目标套接字地址的端口为77。MAP * baz, EXCLUDE www.google.com
把所有地址重新映射到“baz”, 除了"www.google.com".
这些映射适用于网络请求中的端点主机. 网络请求包括TCP连接和直连的主机解析器, 以及HTTP代理连接中的CONNECT
方式, 以及在SOCKS
代理连接中的端点主机.
--host-resolver-rules=rules
与--host-rules
类似, 但是这些rules
仅适用于主机解析器.
--ignore-certificate-errors
忽略证书相关的错误.
--ignore-connections-limit=domains
忽略由,
分割的domains
列表的连接限制.
--js-flags=flags
Specifies the flags passed to the V8 engine. In order to enable the flags
in the main process, this switch must be passed on startup.
$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
Run node --v8-options
or electron --js-flags="--help"
in your terminal for the list of available flags. These can be used to enable early-stage JavaScript features, or log and manipulate garbage collection, among other things.
For example, to trace V8 optimization and deoptimization:
$ electron --js-flags="--trace-opt --trace-deopt" your-app
--lang
设置系统语言环境
--log-file=path
如果 --enable-logging
选项被指定, 日志将被写入到指定路径。 对应的文件夹路径必须存在
设置 ELECTRON_LOG_FILE
环境变量等价于传递当前选项。 如果两者并存, 则命令行参数优先
--log-net-log=path
启用需要保存的网络日志事件并将其写入path
路径下.
--log-level=N
设置与 --enable-logging
一起控制日志等级的选项。 N
应该是 Chrome's LogSeverities 其中一个值
在 Chromium 中要注意两个互补的日志记录机制 -- LOG()
和 VLOG()
-- 由两个不同的开关控制。 --log-level
控制 LOG()
消息, 而 --v
和--vmodule
控制 VLOG()
消息. 所以你可能想要使用这三个切换器的组合,这取决于你想要的日志粒度以及你想要看到的代码记录调用。
查阅 Chromium Logging source 可以看到更多信息关于 LOG()
和 VLOG()
之间的关系. 简单来说, VLOG()
可以被认为是LOG(INFO)
内部子级别/内部模块级别, 是用来控制 LOG(INFO)
里面数据的精细程度.
类似有 --enable-logging
, --log-level
, --v
, 和 --vmodule
.
--no-proxy-server
不使用代理服务器,并始终保持直连。 会覆盖其他代理服务器标记。
--no-sandbox
禁用 Chromium 沙箱。 强制渲染器进程和Chromium助手进程以非沙盒化运行。 应该只在测试时使用。
--proxy-bypass-list=hosts
指示Electron绕过使用; 分号; 分割的给定的主机列表中的代理服务器。 这个标志只有在与--proxy-server
同时使用时才具有效果。
例如:
const { app } = require('electron')
app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')
上面的代码, 除了本地地址(localhost
,127.0.0.1
等等.), google.com
子域名, 包含foo.com
后缀的主机地址, 以及任何在1.2.3.4:5678
上的地址以外的所有主机都将使用代理服务器.
--proxy-pac-url=url
在指定url
中使用PAC脚本.
--proxy-server=address:port
使用指定的覆盖系统设置的代理服务器. 这个开关只影响HTTP协议请求, 包括HTTPS和WebSocket请求. 值得注意的是并不是所有的代理服务器都支持HTTPS和WebSocket请求. 代理 URL 不支持用户名和密码认证方式 Chromium 的问题。
--remote-debugging-port=port
在指定端口
开启HTTP远程调试.
--v=log_level
指定默认的最大活跃V-logging级别;默认值为0。 通常 V-logging 级别为正数。
这个开关只有在--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
目录下源文件中所有代码的日志级别。
这个开关只有在--enable-logging
也被传递时才起效.
类似有 --enable-logging
, --log-level
, 和 --v
.
--force_high_performance_gpu
当有多个GPU可用时,强制使用独立显卡。
--force_low_power_gpu
当有多个GPU可用时,强制使用集成显卡。
Node.js Flags
Electron 支持一些 Node.js 支持的 CLI flags。
注意: 当Electron 不是以 ELECTRON_RUN_AS_NODE
运行时,传递不支持的命令行参数到Electron 不会起作用。
--inspect-brk\[=\[host:]port]
在 主机:端口 上激活检查器并在用户脚本开始运行后中断。 默认 主机:端口 为127.0.0.1:9229。
是 --debug-brk=[host:]port
的别名
--inspect-brk-node[=[host:]port]
Activate inspector on host:port
and break at start of the first internal JavaScript script executed when the inspector is available. Default host:port
is 127.0.0.1:9229
.
--inspect-port=\[host:]port
当检查器被激活时要使用的 主机:端口
。 常用于通过发送 SIGUSR1 信号激活检查器时。 默认主机是 127.0.0.1
。
是 --debug-port=[host:]port
的别名
--inspect\[=\[host:]port]
在 主机:端口
上激活检查器。 默认是 127.0.0.1:9229
。
集成V8 检查器允许Chrome 开发者工具和 IDE 这些工具调试和修改 Electron 实例。 这些工具通过 TCP 端口连接到 Electron 实例,并使用 Chrome 开发者工具协议进行通信。
调试相关的标识, 更多详细信息请查看 Debugging the Main Process指南。
是 --debug[host:]port
的别名
--inspect-publish-uid=stderr,http
指定检查器的 web 套接字url 公开方式。
默认情况下,websocket url在 stderr 中和在 http://host:port/json/list 的 /json/list 端点下都是可用的。
--no-deprecation
Silence deprecation warnings.
--throw-deprecation
Throw errors for deprecations.
--trace-deprecation
Print stack traces for deprecations.
--trace-warnings
Print stack traces for process warnings (including deprecations).
--dns-result-order=order
为 Node.js 的 dns.lookup()
和 dnsPromises.lookup()
函数设置 verbatim
值。 值可以是:
ipv4first
: 设置verbatim
为false
。verbatim
: 设置verbatim
为true
。
默认值为 verbatim
, dns.setDefaultResultOrder()
函数的优先级高于 --dns-result-order
配置。