Skip to main content

지원되는 커맨드라인 스위치

Electron에서 지원하는 커맨드라인 스위치 목록

app.commandLine.appendSwitch를 사용해 앱의 메인 스크립트에서 app 모듈의 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(() => {
// 여기에 코드를 작성
})

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

POSIX 플랫폼에서 NTLM v2를 비활성화한다. 다른 플랫폼에서는 아무런 영향을 미치지 않는다.

HTTP 요청에 대한 디스크 캐시를 비활성화한다.

HTTP/2와 SPDY/3.1 프로토콜을 비활성화한다.

--disable-renderer-backgrounding

크로미움(Chromium)이 보이지 않는 페이지의 렌더러 프로세스 우선순위를 낮추지 않도록 방지한다.

이 플래그는 모든 렌더러 프로세스에 전역적으로 적용된다. 특정 윈도우에서만 스로틀링(throttling)을 비활성화하려면 무음 오디오 재생 방법을 활용할 수 있다.

--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 "www.google.com"을 제외한 모든 것을 "baz"로 다시 매핑한다.

이 매핑은 네트워크 요청의 엔드포인트 호스트에 적용된다(직접 연결 시 TCP 연결 및 호스트 리졸버, HTTP 프록시 연결 시 CONNECT, SOCKS 프록시 연결 시 엔드포인트 호스트).

--host-resolver-rules=규칙

--host-rules와 유사하지만, 이 규칙은 호스트 리졸버에만 적용된다.

--ignore-certificate-errors

인증서 관련 오류를 무시한다.

--ignore-connections-limit=domains

domains 목록에 있는 도메인에 대해 연결 제한을 무시한다. 도메인은 ,로 구분한다.

--js-flags=flags

V8 엔진에 전달할 플래그를 지정한다. 메인 프로세스에서 이 플래그를 활성화하려면, 애플리케이션 시작 시 이 스위치를 전달해야 한다.

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

사용 가능한 플래그 목록을 확인하려면 터미널에서 node --v8-options 또는 electron --js-flags="--help"를 실행한다. 이 플래그들은 초기 단계의 자바스크립트 기능을 활성화하거나, 가비지 컬렉션을 로깅하고 조작하는 등의 다양한 목적으로 사용할 수 있다.

예를 들어, V8의 최적화 및 비최적화 과정을 추적하려면 다음과 같이 실행한다:

$ electron --js-flags="--trace-opt --trace-deopt" your-app

--lang

사용자 정의 로케일을 설정한다.

--log-file=경로

--enable-logging 옵션을 지정하면 로그가 주어진 경로에 기록된다. 상위 디렉터리는 반드시 존재해야 한다.

ELECTRON_LOG_FILE 환경 변수를 설정하는 것은 이 플래그를 전달하는 것과 동일하다. 둘 다 존재할 경우, 커맨드라인 스위치가 우선 적용된다.

--log-net-log=path

네트 로그 이벤트를 활성화하고 이를 path에 저장한다.

--log-level=N

--enable-logging과 함께 사용할 때 로깅의 상세도를 설정한다. NChrome의 LogSeverities 중 하나여야 한다.

Chromium에는 두 가지 상호 보완적인 로깅 메커니즘이 있다. LOG()VLOG()는 각각 다른 스위치로 제어된다. --log-levelLOG() 메시지를 제어하고, --v--vmoduleVLOG() 메시지를 제어한다. 따라서 원하는 세부 수준과 모니터링하려는 코드에서 어떤 로깅 호출을 사용하는지에 따라 이 세 가지 스위치를 조합하여 사용할 수 있다.

LOG()VLOG()가 어떻게 상호작용하는지 더 자세히 알고 싶다면 Chromium Logging 소스를 참고한다. 간단히 말해, VLOG()LOG(INFO) 내부의 하위 수준 또는 모듈별 수준으로 생각할 수 있다. 이를 통해 LOG(INFO) 데이터의 양을 조절할 수 있다.

참고할 만한 다른 옵션으로는 --enable-logging, --log-level, --v, --vmodule이 있다.

프록시 서버를 사용하지 않고 항상 직접 연결을 한다. 이 옵션은 전달된 다른 모든 프록시 서버 관련 플래그를 무시한다.

--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 이슈를 참고한다.

지정된 port에서 HTTP를 통해 원격 디버깅을 활성화한다.

--v=log_level

기본 최대 활성 V-로깅 레벨을 지정한다. 기본값은 0이다. 일반적으로 양수 값을 V-로깅 레벨로 사용한다.

이 스위치는 --enable-logging도 함께 전달될 때만 동작한다.

관련 스위치: --enable-logging, --log-level, --vmodule

--vmodule=패턴

이 옵션은 --v로 지정한 값을 재정의하여 모듈별 최대 V 로깅 레벨을 설정한다. 예를 들어 my_module=2,foo*=3my_module.*foo*.* 소스 파일에 있는 모든 코드의 로깅 레벨을 변경한다.

슬래시(/)나 백슬래시()가 포함된 패턴은 모듈 이름뿐만 아니라 전체 경로에 대해 테스트된다. 예를 들어 */foo/bar/*=2foo/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 환경에서 파일 대화 상자에 XDG 포털 백엔드를 사용하기 위해 필요한 최소 XDG 포털 구현 버전을 version으로 설정한다. 필요한 버전을 사용할 수 없을 경우, 데스크톱 환경에 따라 GTK 또는 KDE로 대체된다. 현재 기본값은 3이다.

Node.js 플래그

Electron은 Node.js가 지원하는 CLI 플래그 중 일부를 지원한다.

참고: ELECTRON_RUN_AS_NODE 모드에서 실행되지 않을 때 Electron에 지원되지 않는 커맨드라인 스위치를 전달하면 아무런 효과가 없다.

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

--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 Protocol을 사용해 통신한다.

자세한 내용은 메인 프로세스 디버깅 가이드를 참고한다.

이 옵션은 --debug[=[host:]port로도 사용할 수 있다.

--inspect-publish-uid=stderr,http는 인스펙터 웹 소켓 URL을 노출하는 방식을 지정한다.

기본적으로 인스펙터 웹 소켓 URL은 stderr와 http://host:port/json/list 엔드포인트에서 확인할 수 있다.

--no-deprecation

사용 중단 경고를 표시하지 않는다.

--throw-deprecation

더 이상 사용되지 않는 기능(deprecations)에 대해 오류를 발생시킨다.

--trace-deprecation

사용 중단(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보다 높은 우선순위를 가진다.