跳到主要内容

支持的命令行开关

Electron 支持的命令行开关。

你可以在应用的主脚本中使用 app.commandLine.appendSwitchapp 模块的 ready 事件发出之前附加它们。

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.comfoobar.combaz 结尾的 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

控制主机名如何映射的逗号分隔的 `rules` 列表。

例如

  • `MAP * 127.0.0.1` 强制所有主机名映射到 127.0.0.1
  • `MAP *.google.com proxy` 强制所有 google.com 子域名解析为 "proxy"。
  • `MAP test.com [::1]:77` 强制 "test.com" 解析为 IPv6 回环地址。同时会将得到的 socket 地址的端口强制设置为 77。
  • `MAP * baz, EXCLUDE www.google.com` 将除 "www.google.com" 之外的所有内容重新映射到 "baz"。

这些映射规则应用于网络请求中的端点主机(直连时的 TCP 连接和主机解析器,HTTP 代理连接中的 `CONNECT`,以及 `SOCKS` 代理连接中的端点主机)。

--host-resolver-rules=rules

与 `--host-rules` 类似,但这些 `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 Logging 源代码。通俗地说,`VLOG()` 可以被认为是 `LOG(INFO)` 内部的子级别/按模块级别,用于控制 `LOG(INFO)` 数据的流量。

另请参阅 `--enable-logging`、`--log-level` 和 `--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 issue,代理 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

将 XDG portal 实现的最低所需版本设置为 `version`,以便在 Linux 上对文件对话框使用 portal 后端。当所需版本不可用时,文件对话框将根据桌面环境回退到使用 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 端点下可用。

--no-deprecation

静默弃用警告。

--throw-deprecation

对弃用发出错误。

--trace-deprecation

打印弃用的堆栈跟踪。

--trace-warnings

打印进程警告(包括弃用)的堆栈跟踪。

--dns-result-order=order

设置 Node.js dns.lookup()dnsPromises.lookup() 函数中 verbatim 参数的默认值。该值可以是

  • ipv4first: 设置默认 verbatimfalse
  • verbatim: 设置默认 verbatimtrue

默认值为 verbatim,且 dns.setDefaultResultOrder() 的优先级高于 --dns-result-order

--diagnostic-dir=directory

设置所有 Node.js 诊断输出文件写入的目录。默认为当前工作目录。

影响 v8.setHeapSnapshotNearHeapLimit 的默认输出目录。