跳转到主内容

支持的命令行开关

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

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: 设置 verbatimfalse
  • verbatim: 设置 verbatimtrue

默认值为 verbatim , dns.setDefaultResultOrder() 函数的优先级高于 --dns-result-order 配置。