支持的命令行开关
Electron支持的命令行开关.
You can use app.commandLine.appendSwitch to append them in your app's main script before the ready event of the app module is emitted:
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
Disables NTLM v2 for POSIX platforms, no effect elsewhere.
--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可用时,强制使用集成显卡。
--xdg-portal-required-version=version
Sets the minimum required version of XDG portal implementation to version
in order to use the portal backend for file dialogs on linux. File dialogs will fallback to using gtk or kde depending on the desktop environment when the required version is unavailable. Current default is set to 3
.
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 开发者工具协议进行通信。
See the Debugging the Main Process guide for more details.
是 --debug[host:]port
的别名
--inspect-publish-uid=stderr,http
指定检查器的 web 套接字url 公开方式。
By default inspector websocket url is available in stderr and under /json/list endpoint on http://host:port/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
配置。