# 支持的 Chrome 命令行开关

> Electron 支持的命令行开关。

你可以在 [app][app] 模块的 [ready][ready] 事件发出之前使用 [app.commandLine.appendSwitch][append-switch] 来添加它们到你应用的 main 脚本里面：

```javascript
const {app} = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
app.commandLine.appendSwitch('host-rules', 'MAP * 127.0.0.1')

app.on('ready', () => {
  // Your code here
})
```

## --client-certificate=`path`

设置客户端的证书文件 `path` .

## --ignore-connections-limit=`domains`

忽略用 `,` 分隔的 `domains` 列表的连接限制.

## --disable-http-cache

禁止请求 HTTP 时使用磁盘缓存.

## --remote-debugging-port=`port`

在指定的 `端口` 通过 HTTP 开启远程调试.

## --js-flags=`flags`

指定引擎过渡到 JS 引擎.

在启动Electron时，如果你想在主进程中激活 `flags` ，它将被转换.

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

## --proxy-server=`address:port`

使用一个特定的代理服务器，它将比系统设置的优先级更高.这个开关只有在使用 HTTP 协议时有效，它包含 HTTPS 和 WebSocket 请求. 值得注意的是，不是所有的代理服务器都支持 HTTPS 和 WebSocket 请求.

## --proxy-bypass-list=`hosts`

让 Electron 使用(原文:bypass) 提供的以 semi-colon 分隔的hosts列表的代理服务器.这个开关只有在使用 `--proxy-server` 时有效.

例如:

```javascript
app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')
```


将会为所有的hosts使用代理服务器，除了本地地址 (`localhost`,
`127.0.0.1` etc.), `google.com` 子域, 以 `foo.com` 结尾的hosts，和所有类似 `1.2.3.4:5678`的.

## --proxy-pac-url=`url`

在指定的 `url` 上使用 PAC 脚本.

## --no-proxy-server

不使用代理服务并且总是使用直接连接.忽略所有的合理代理标志.

## --host-rules=`rules`

一个逗号分隔的 `rule` 列表来控制主机名如何映射.

例如:

* `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 连接
和 主机解析 以直接连接的方式, 和 `CONNECT` 以代理连接, 还有 终端 host 使用 `SOCKS` 代理连接).

## --host-resolver-rules=`rules`

类似 `--host-rules` ，但是 `rules` 只适合主机解析.

## --ignore-certificate-errors

忽略与证书相关的错误.

## --ppapi-flash-path=`path`

设置Pepper Flash插件的路径 `path` .

## --ppapi-flash-version=`version`

设置Pepper Flash插件版本号.

## --log-net-log=`path`

使网络日志事件能够被读写到 `path`.

## --disable-renderer-backgrounding

防止 Chromium 降低隐藏的渲染进程优先级.

这个标志对所有渲染进程全局有效，如果你只想在一个窗口中禁止使用，你可以采用 hack 方法[playing silent audio][play-silent-audio].

## --enable-logging

打印 Chromium 信息输出到控制台.

如果在用户应用加载完成之前解析`app.commandLine.appendSwitch` ，这个开关将实效，但是你可以设置 `ELECTRON_ENABLE_LOGGING` 环境变量来达到相同的效果.

## --v=`log_level`

设置默认最大活跃 V-logging 标准; 默认为 0.通常 V-logging 标准值为肯定值.

这个开关只有在 `--enable-logging` 开启时有效.

## --vmodule=`pattern`

赋予每个模块最大的 V-logging levels 来覆盖 `--v` 给的值.E.g. `my_module=2,foo*=3` 会改变所有源文件 `my_module.*` and `foo*.*` 的代码中的 logging level .

任何包含向前的(forward slash)或者向后的(backward slash)模式将被测试用于阻止整个路径名，并且不仅是E.g模块.`*/foo/bar/*=2` 将会改变所有在 `foo/bar` 下的源文件代码中的 logging level .

这个开关只有在 `--enable-logging` 开启时有效.

[app]: app.md
[append-switch]: app.md#appcommandlineappendswitchswitch-value
[ready]: app.md#event-ready
[play-silent-audio]: https://github.com/atom/atom/pull/9485/files
[debugging-main-process]: ../tutorial/debugging-main-process.md
[node-cli]: https://nodejs.org/api/cli.html
