跳转到主要内容

支持的命令行开关

Electron 支持的命令行开关。

您可以在应用程序的 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.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 回环地址。还将强制结果套接字地址的端口为 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

指定传递给 V8 引擎 的标志。要在主进程中启用 flags,必须在启动时传递此开关。

$ electron --js-flags="--harmony_proxies --harmony_collections" your-app

在终端中运行 node --v8-optionselectron --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')

将为除本地地址(localhost127.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]

在主机上激活调试器:port并在用户脚本的开头中断。默认主机:port是 127.0.0.1:9229。

别名为 --debug-brk=[host:]port

--inspect-brk-node[=[host:]port]

host:port 上激活调试器,并在调试器可用时中断第一个内部 JavaScript 脚本的执行。默认 host:port127.0.0.1:9229

--inspect-port=[host:]port

设置调试器激活时使用的 host:port。在发送 SIGUSR1 信号激活调试器时很有用。默认主机是 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 协议 进行通信。

有关更多详细信息,请参阅 调试主进程 指南。

别名为 --debug[=[host:]port

--inspect-publish-uid=stderr,http

指定调试器 WebSocket URL 的暴露方式。

默认情况下,调试器 WebSocket URL 可在 stderr 中以及在 http://host:port/json/list 上的 /json/list 端点下访问。

--experimental-network-inspection

启用对 devtools 网络调试器事件的支持,以便查看 Node.js httphttps 模块发出的请求。

--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