命令行参数支持说明

返回主页

openharmony 命令行参数配置

1.鸿蒙平台使用命令行参数,需要在web_engine\src\main\ets\common\CommandLineAdapter.ets中添加应用启动时需要使用的命令行参数。具体位置为--->>buildDefaultArgs() --->> vec_args 中,如下图: 2.端口调试相关的参数在启用的同时需要在pc上执行:hdc fport tcp:[端口号] tcp:[端口号] 用于开启端口转发; 使用Chrome调试时,在chrome://inspect/#devices需要添加对应的端口配置,如下图:


‌--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 必须完全匹配。
  • 实际项目中的使用示例:用于需要跨服务器传递用户身份信息的单点登录(SSO)场景。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--disable-ntlm-v2‌

  • 详细说明与作用:禁用 POSIX 平台的 NTLM v2,其他地方无影响。
  • 实际项目中的使用示例:在特定 Linux 或 macOS 环境下,遇到 NTLM 认证问题时,可尝试禁用此协议。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--disable-http-cache‌

  • 详细说明与作用:禁用 HTTP 请求的磁盘缓存。
  • 实际项目中的使用示例:在开发阶段,为了确保每次都能获取到最新的服务器资源,可以禁用缓存。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--disable-http2‌

  • 详细说明与作用:禁用 HTTP/2 和 SPDY/3.1 协议。
  • 实际项目中的使用示例:当后端服务或网络环境对 HTTP/2 支持不佳时,可降级使用 HTTP/1.1。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--disable-renderer-backgrounding‌

  • 详细说明与作用:防止 Chromium 降低不可见页面渲染器进程的优先级。该标志对所有渲染器进程都是全局的,如果你只想在一个窗口中禁用限制,你可以采用播放无声音频的 hack。
  • 实际项目中的使用示例:适用于需要后台持续运行复杂计算或动画的应用(如后台数据可视化、监控仪表盘),确保性能不下降。
  • 鸿蒙支持情况:不支持
  • 差异原因:鸿蒙平台对后台进程有更严格的资源限制。Electron在后台时自动进入能效模式,无论是否启用该参数。可ctrl+shift+Esc打开任务管理器查看。

‌--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。
  • 实际项目中的使用示例:在应用启动脚本中添加 --enable-logging 以在控制台查看 Chromium 日志,或配合 --log-file 将日志输出到指定文件,便于问题追踪。
  • 鸿蒙支持情况:支持
  • 使用差异:支持

‌--force-fieldtrials=trials‌

  • 详细说明与作用:强制启用或禁用字段试验。例如:WebRTC-Audio-Red-For-Opus/Enabled/
  • 实际项目中的使用示例:主要用于测试 Chromium 的特定实验性功能。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--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" 除外。这些映射适用于网络请求中的端点主机。
  • 实际项目中的使用示例:在开发中用于将特定域名重定向到本地开发服务器或代理,方便前后端联调。例如:app.commandLine.appendSwitch('host-rules', 'MAP *.myapi.com 127.0.0.1:8080')。
  • 鸿蒙支持情况:已弃用

‌--host-resolver-rules=rules‌

  • 详细说明与作用:与 --host-rules 类似,但这些 rules 仅适用于主机解析器。
  • 实际项目中的使用示例:当需要更精细地控制 DNS 解析行为,而不影响其他网络层时使用。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--ignore-certificate-errors‌

  • 详细说明与作用:忽略与证书相关的错误。
  • 实际项目中的使用示例:‌仅用于开发测试‌,当使用自签名证书或测试环境的 HTTPS 服务时,避免证书错误阻止应用运行。‌生产环境严禁使用‌。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--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。
  • 实际项目中的使用示例:启用 V8 引擎的特定功能或进行性能调优。例如,启用新的 JavaScript 语言特性,或开启垃圾回收跟踪以分析内存问题。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--lang‌

  • 详细说明与作用:设置自定义区域设置。
  • 实际项目中的使用示例:强制应用使用特定语言环境,覆盖系统默认设置,用于测试国际化或为特定用户群体预设语言。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--log-file=path‌

  • 详细说明与作用:如果指定 --enable-logging,日志将写入给定路径。父目录必须存在。设置 ELECTRON_LOG_FILE 环境变量相当于传递此标志。如果两者都存在,则命令行开关优先。
  • 实际项目中的使用示例:与 --enable-logging=file 配合使用,将日志定向到指定的文件路径,便于管理和归档。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--log-net-log=path‌

  • 详细说明与作用:允许保存网络日志事件并将其写入 path。
  • 实际项目中的使用示例:用于网络性能分析和调试,记录所有网络请求的详细信息。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--log-level=N‌

  • 详细说明与作用:与 --enable-logging 一起使用时设置日志记录的详细程度。N 应该是 Chrome 的 LogSeverities 之一。请注意,Chromium 中的两种免费日志记录机制(LOG() 和 VLOG())由不同的开关控制。--log-level 控制 LOG() 消息,而 --v 和 --vmodule 控制 VLOG() 消息。因此,你可能需要使用这三个开关的组合,具体取决于你想要的粒度以及你要监视的代码进行的日志记录调用。另请参见 --enable-logging、--log-level、--v 和 --vmodule。
  • 实际项目中的使用示例:控制日志输出的详细程度。例如 --log-level=0(默认)只输出 ERROR 和 WARNING,更高级别会输出 INFO、VERBOSE 等,帮助在不同调试阶段过滤信息。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--no-proxy-server‌

  • 详细说明与作用:不要使用代理服务器并始终进行直接连接。覆盖传递的任何其他代理服务器标志。
  • 实际项目中的使用示例:在配置了系统代理但需要直接连接内部网络或本地服务的环境中使用。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--no-sandbox‌

  • 详细说明与作用:禁用 Chromium sandbox。强制渲染器进程和 Chromium 辅助进程在非沙盒环境下运行。‌应该仅用于测试‌。
  • 实际项目中的使用示例:‌仅在开发或调试特定与沙盒冲突的 Native 模块时临时使用。由于会降低安全性,生产环境绝对禁止使用。‌
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--no-stdio-init

  • 详细说明与作用:在节点初始化期间禁用 stdio 初始化。用于在 Windows 平台禁用 nul 设备时避免节点初始化崩溃。
  • 鸿蒙支持情况:不适用
  • 使用差异:该参数在当前Electron代码中未注册为命令行开关,仅为Node.js内部API标志(ProcessInitializationFlags::kNoStdioInitialization)。原文说明主要用于Windows平台避免nul设备禁用时崩溃,鸿蒙平台不涉及此问题。
  • 差异原因:Node.js内部API标志,非命令行开关;且该功能主要针对Windows平台的nul设备问题,鸿蒙为POSIX平台不存在此场景。

‌--proxy-bypass-list=hosts‌

  • 详细说明与作用:指示 Electron 绕过给定的以分号分隔的主机列表的代理服务器。该标志仅在与 --proxy-server 一起使用时才有效。例如:app.commandLine.appendSwitch('proxy-bypass-list', ';.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 脚本。
  • 实际项目中的使用示例:使用自动代理配置脚本(PAC)来动态决定请求的代理方式。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--proxy-server=address:port‌

  • 详细说明与作用:使用指定的代理服务器,这会覆盖系统设置。此开关仅影响 HTTP 协议的请求,包括 HTTPS 和 WebSocket 请求。还值得注意的是,并非所有代理服务器都支持 HTTPS 和 WebSocket 请求。代理 URL 不支持用户名和密码认证。
  • 实际项目中的使用示例:强制应用的所有 HTTP/HTTPS/WebSocket 流量通过指定的代理服务器,常用于企业内网或特定网络环境。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--remote-debugging-port=port‌

  • 详细说明与作用:在指定的 port 上启用通过 HTTP 的远程调试。
  • 实际项目中的使用示例:在应用启动时开启调试端口,允许 Chrome DevTools 等工具远程连接进行调试。示例:app.commandLine.appendSwitch('remote-debugging-port', '8315')。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--v=log_level‌

  • 详细说明与作用:给出默认的最大活动 V-logging 级别;0 是默认值。通常正值用于 V 记录级别。该开关仅在 --enable-logging 也通过时才起作用。另请参见 --enable-logging、--log-level 和 --vmodule。
  • 实际项目中的使用示例:控制 VLOG() 日志的详细级别,用于输出更细致的调试信息。例如 --v=2。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--vmodule=pattern‌

  • 详细说明与作用:给出每个模块的最大 V 记录级别以覆盖 --v 给出的值。例如 my_module=2,foo=3 将更改源文件 my_module. 和 foo. 中所有代码的日志记录级别。任何包含正斜杠或反斜杠的模式都将针对整个路径名进行测试,而不仅仅是模块。例如 /foo/bar/=2 将更改 foo/bar 目录下源文件中所有代码的日志记录级别。该开关仅在 --enable-logging 也通过时才起作用。
  • 实际项目中的使用示例:针对特定模块或文件路径启用更详细的日志,避免全局日志过于冗杂,便于定位特定模块的问题。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--force_high_performance_gpu‌

  • 详细说明与作用:当有多个可用 GPU 时,强制使用独立 GPU。
  • 实际项目中的使用示例:对于图形密集型应用(如3D渲染、视频编辑),确保使用高性能独立显卡以获得最佳体验。
  • 鸿蒙支持情况:不支持
  • 使用差异:鸿蒙设备为SoC架构,不存在独显与核显的区别

‌--force_low_power_gpu‌

  • 详细说明与作用:当有多个可用 GPU 时强制使用集成 GPU。
  • 实际项目中的使用示例:对于笔记本等移动设备,强制使用集成显卡以节省电量,延长续航。
  • 鸿蒙支持情况:不支持
  • 使用差异:鸿蒙设备为SoC架构,不存在独显与核显的区别

‌--xdg-portal-required-version=version‌

  • 详细说明与作用:将 XDG 门户实现所需的最低版本设置为 version,以便在 Linux 上使用门户后端进行文件对话框。当所需版本不可用时,文件对话框将根据桌面环境回退到使用 gtk 或 kde。当前默认设置为 3。
  • 实际项目中的使用示例:在 Linux 桌面环境下,确保文件对话框使用特定版本的 XDG 门户服务,以保持UI一致性或使用新特性。
  • 鸿蒙支持情况:不支持
  • 使用差异:该参数为linux平台特有参数

‌--inspect-brk[=[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。
  • 实际项目中的使用示例:专门用于调试 Node.js 原生模块或早期启动脚本。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--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 开发者工具协议进行通信。别名为 --debug[=[host:]port。
  • 实际项目中的使用示例:最常用的调试标志,启动后可通过 Chrome DevTools 或 VS Code 连接到指定端口进行调试。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--inspect-publish-uid=stderr,http‌

  • 详细说明与作用:指定检查器 Web 套接字 url 暴露的方式。默认情况下,检查器 websocket url 在 stderr 和 http://host:port/json/list 上的 /json/list 端点下可用。
  • 实际项目中的使用示例:控制调试器连接信息的输出方式,适应不同的开发环境或自动化脚本。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--experimental-network-inspection‌

  • 详细说明与作用:启用对 devtools 网络检查器事件的支持,以便查看 nodejs http 和 https 模块发出的请求。
  • 实际项目中的使用示例:在 Chrome DevTools 的 Network 面板中查看由 Node.js 核心模块发起的网络请求,方便全栈调试。
  • 鸿蒙支持情况:不支持

‌--no-deprecation‌

  • 详细说明与作用:静默弃用警告。
  • 实际项目中的使用示例:在升级版本后,暂时屏蔽弃用警告,使控制台输出更清晰。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--throw-deprecation‌

  • 详细说明与作用:抛出弃用错误。
  • 实际项目中的使用示例:在开发阶段,将弃用警告转为错误抛出,强制开发者立即更新已废弃的 API。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--trace-deprecation‌

  • 详细说明与作用:打印弃用的堆栈跟踪。
  • 实际项目中的使用示例:不仅显示弃用信息,还打印出调用堆栈,精确定位是哪段代码使用了废弃的 API。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--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。
  • 实际项目中的使用示例:控制 DNS 查询结果的排序,例如优先返回 IPv4 地址 (ipv4first),以兼容某些旧系统或网络环境。
  • 鸿蒙支持情况:支持
  • 使用差异:无差异

‌--diagnostic-dir=directory‌

  • 详细说明与作用:设置写入所有 Node.js 诊断输出文件的目录。默认为当前工作目录。影响 v8.setHeapSnapshotNearHeapLimit 的默认输出目录。
  • 实际项目中的使用示例:集中管理堆快照、CPU Profile 等诊断文件的输出位置。
  • 鸿蒙支持情况:不支持

‌--no-experimental-global-navigator‌

  • 详细说明与作用:在 Node.js 中禁用全局范围内的 Navigator API 暴露。
  • 实际项目中的使用示例:防止 Node.js 环境下的全局 navigator 对象与渲染进程中的 navigator 产生混淆或冲突。
  • 鸿蒙支持情况:不支持