支持的命令行开关
Electron 支持的命令行开关。
您可以在应用程序的 main 脚本中,在 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(() => {
// Your code here
})
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
禁用 POSIX 平台上的 NTLM v2,在其他地方无效。
--disable-http-cache
禁用 HTTP 请求的磁盘缓存。
--disable-http2
禁用 HTTP/2 和 SPDY/3.1 协议。
--disable-renderer-backgrounding
阻止 Chromium 降低不可见页面渲染进程的优先级。
此标志对所有渲染进程全局生效。如果您只想禁用某个窗口的节流,可以尝试 播放静音音频 的技巧。
--disk-cache-size=size
强制磁盘缓存使用的最大磁盘空间(以字节为单位)。
--enable-logging[=file]
将 Chromium 的日志打印到 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 已弃用
用于控制主机名映射的规则的逗号分隔列表。
例如
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 开关。
--host-resolver-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”。
这些 rules 仅适用于主机解析器。
--ignore-certificate-errors
忽略与证书相关的错误。
--ignore-connections-limit=domains
忽略 , 分隔的 domains 列表的连接限制。
--js-flags=flags
指定传递给 V8 引擎 的标志。要在主进程中启用 flags,必须在启动时传递此开关。
$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
在终端中运行 node --v8-options 或 electron --js-flags="--help" 以获取可用标志列表。这些标志可用于启用早期 JavaScript 功能、日志记录和垃圾回收操作等。
例如,跟踪 V8 的优化和去优化
$ 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 的 LogSeverities 之一。
请注意,Chromium 中两个互补的日志记录机制——LOG() 和 VLOG()——由不同的开关控制。--log-level 控制 LOG() 消息,而 --v 和 --vmodule 控制 VLOG() 消息。因此,您可能需要根据所需的粒度以及您要监视的代码所做的日志记录调用,结合使用这三个开关。
有关 LOG() 和 VLOG() 如何交互的更多信息,请参阅 Chromium 日志源。粗略地说,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 请求。根据 Chromium 问题,代理 URL 不支持用户名和密码身份验证。
--remote-debugging-port=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 可用时,强制使用独立 GPU。
--force_low_power_gpu
当有多个 GPU 可用时,强制使用集成 GPU。
--xdg-portal-required-version=version
在 Linux 上使用 Portal 后端作为文件对话框时,将 XDG Portal 实现的最低必需版本设置为 version。当所需版本不可用时,文件对话框将回退到使用 gtk 或 kde,具体取决于桌面环境。当前默认设置为 3。
Node.js 标志
Electron 支持 Node.js 的部分 CLI 标志。
当 Electron 未在 ELECTRON_RUN_AS_NODE 中运行时,传递不受支持的命令行开关将无效。
--inspect-brk[=[host:]port]
在 host 上激活检查器:port并在用户脚本的开头中断。默认 host:port为 127.0.0.1:9229。
别名为 --debug-brk=[host:]port。
--inspect-brk-node[=[host:]port]
在 host:port 上激活检查器,并在检查器可用时第一个内部 JavaScript 脚本的开头中断。默认 host:port 为 127.0.0.1:9229。
--inspect-port=[host:]port
设置激活检查器时使用的 host:port。当通过发送 SIGUSR1 信号激活检查器时很有用。默认 host 为 127.0.0.1。
别名为 --debug-port=[host:]port。
--inspect[=[host:]port]
在 host:port 上激活检查器。默认值为 127.0.0.1:9229。
V8 检查器集成允许 Chrome DevTools 和 IDE 等工具调试和分析 Electron 实例。这些工具通过 TCP 端口连接到 Electron 实例,并使用 Chrome DevTools Protocol 进行通信。
有关更多详细信息,请参阅 调试主进程 指南。
别名为 --debug[=[host:]port。
--inspect-publish-uid=stderr,http
指定检查器 WebSocket URL 的暴露方式。
默认情况下,检查器 WebSocket URL 在 stderr 中可用,并且可以通过 http://host:port/json/list 下的 /json/list 端点访问。
--experimental-network-inspection
启用对 devtools 网络检查器事件的支持,以查看由 nodejs http 和 https 模块发出的请求。
--no-deprecation
屏蔽弃用警告。
--throw-deprecation
为弃用抛出错误。
--trace-deprecation
打印弃用的堆栈跟踪。
--trace-warnings
打印进程警告(包括弃用)的堆栈跟踪。
--dns-result-order=order
设置 Node.js dns.lookup() 和 dnsPromises.lookup() 函数中 verbatim 参数的默认值。该值可以是
ipv4first:将默认verbatim设置为false。verbatim:将默认verbatim设置为true。
默认值为 verbatim,并且 dns.setDefaultResultOrder() 的优先级高于 --dns-result-order。
--diagnostic-dir=directory
设置所有 Node.js 诊断输出文件写入的目录。默认为当前工作目录。
影响 v8.setHeapSnapshotNearHeapLimit 的默认输出目录。
--no-experimental-global-navigator
禁用 Node.js 中 Navigator API 在全局范围的暴露。
Chromium 标志
没有所有 Chromium 开关的文档化列表,但有几种方法可以找到它们。
最简单的方法是通过 Chromium 的标志页面,您可以在 about://flags 访问。这些标志不直接对应开关名称,但它们会出现在进程的命令行参数中。
要查看这些参数,请在 about://flags 中启用一个标志,然后在 Chromium 中转到 about://version。您会找到命令行参数列表,其中包括 --flag-switches-begin --your --list --flag-switches-end,其中包含您启用的标志开关列表。
大多数标志都包含在 --enable-features= 中,但有些是独立的开关,例如 --enable-experimental-web-platform-features。
完整的标志列表存在于 Chromium 的标志元数据页面,但此列表包含平台、环境和 GPU 特定、已过期以及可能无效的标志,因此其中许多标志在任何情况下都可能不总是有效。
请记住,独立的开关有时可以拆分成单独的功能,因此没有一个完全完整的开关列表。
最后,您需要确保 Electron 中的 Chromium 版本与您用于交叉引用开关的浏览器版本匹配。