Skip to main content

환경 변수

코드를 변경하지 않고 애플리케이션의 설정과 동작을 제어한다.

일부 Electron 동작은 환경 변수에 의해 제어된다. 환경 변수는 커맨드라인 플래그와 앱의 코드보다 먼저 초기화되기 때문이다.

POSIX 쉘 예제:

$ export ELECTRON_ENABLE_LOGGING=true
$ electron

Windows 콘솔 예제:

> set ELECTRON_ENABLE_LOGGING=true
> electron

프로덕션 환경 변수

아래 환경 변수들은 주로 패키징된 Electron 애플리케이션에서 런타임 시 사용하기 위해 고안되었다.

NODE_OPTIONS

Electron은 Node의 NODE_OPTIONS 중 일부를 지원한다. Chromium이 BoringSSL을 사용하는 것과 충돌하는 옵션을 제외하면 대부분의 옵션을 사용할 수 있다.

예시:

export NODE_OPTIONS="--no-warnings --max-old-space-size=2048"

지원되지 않는 옵션은 다음과 같다:

--use-bundled-ca
--force-fips
--enable-fips
--openssl-config
--use-openssl-ca

NODE_OPTIONS는 패키징된 앱에서 명시적으로 허용되지 않는다. 단, 다음 옵션은 예외로 허용된다:

--max-http-header-size
--http-parser

nodeOptions 퓨즈가 비활성화된 경우, NODE_OPTIONS는 무시된다.

NODE_EXTRA_CA_CERTS

자세한 내용은 Node.js cli 문서를 참고한다.

export NODE_EXTRA_CA_CERTS=/path/to/cert.pem

nodeOptions 퓨즈가 비활성화된 경우, NODE_EXTRA_CA_CERTS는 무시된다.

Electron에서 지리적 위치 정보(Geolocation) 기능을 사용하려면 Google Cloud Platform의 지리적 위치 웹서비스를 활용해야 한다. 이 기능을 활성화하기 위해 Google API 키를 발급받고, 지리적 위치 요청을 수행할 브라우저 윈도우를 열기 전에 메인 프로세스 파일에 다음 코드를 추가한다:

process.env.GOOGLE_API_KEY = 'YOUR_KEY_HERE'

기본적으로 새로 생성된 Google API 키는 지리적 위치 요청을 허용하지 않을 수 있다. 프로젝트에서 지리적 위치 웹서비스를 사용하려면 API 라이브러리에서 해당 서비스를 활성화해야 한다.

참고: 지리적 위치 웹서비스가 정상적으로 동작하려면 API 키와 연결된 프로젝트에 결제 계정을 추가해야 한다.

ELECTRON_NO_ASAR

ASAR 지원을 비활성화한다. 이 변수는 ELECTRON_RUN_AS_NODE를 설정한 포크된 자식 프로세스와 스폰된 자식 프로세스에서만 지원된다.

ELECTRON_RUN_AS_NODE

이 옵션은 프로세스를 일반 Node.js 프로세스로 실행한다.

이 모드에서는 일반 Node.js 실행 파일을 실행할 때와 마찬가지로 cli 옵션을 Node.js에 전달할 수 있다. 단, 아래의 플래그는 예외다:

  • "--openssl-config"
  • "--use-bundled-ca"
  • "--use-openssl-ca",
  • "--force-fips"
  • "--enable-fips"

이 플래그들은 Electron이 Node.js의 crypto 모듈을 빌드할 때 OpenSSL 대신 BoringSSL을 사용하기 때문에 비활성화된다. 따라서 의도한 대로 작동하지 않는다.

runAsNode 퓨즈가 비활성화된 경우, ELECTRON_RUN_AS_NODE는 무시된다.

ELECTRON_NO_ATTACH_CONSOLE Windows

현재 콘솔 세션에 연결하지 않는다.

ELECTRON_FORCE_WINDOW_MENU_BAR Linux

Linux에서 전역 메뉴 바를 사용하지 않는다.

ELECTRON_TRASH Linux

리눅스에서 휴지통 구현 방식을 설정한다. 기본값은 gio이다.

옵션:

  • gvfs-trash
  • trash-cli
  • kioclient5
  • kioclient

ELECTRON_OZONE_PLATFORM_HINT Linux

Linux에서 사용할 기본 플랫폼 백엔드를 선택한다. 기본값은 x11이다. auto는 가능한 경우 Wayland를 선택하고, 그렇지 않으면 X11을 선택한다.

옵션:

  • auto
  • wayland
  • x11

개발 환경 변수

아래 나열된 환경 변수들은 주로 개발 및 디버깅 목적으로 사용된다.

ELECTRON_ENABLE_LOGGING

이 환경 변수를 설정하면 Chromium의 내부 로그가 콘솔에 출력된다.

이 변수를 설정하는 것은 커맨드라인에서 --enable-logging을 전달하는 것과 동일하다. 더 자세한 내용은 커맨드라인 스위치 문서의 --enable-logging 부분을 참고한다.

ELECTRON_LOG_FILE

이 환경 변수는 Chromium의 내부 로깅 파일 경로를 설정한다.

이 변수를 설정하는 것은 커맨드라인에서 --log-file 인자를 전달하는 것과 동일하다. 자세한 내용은 커맨드라인 스위치 문서의 --log-file 섹션을 참고한다.

ELECTRON_DEBUG_NOTIFICATIONS

이 환경 변수는 macOS에서 Notification의 라이프사이클에 대한 추가 로그를 활성화하여 디버깅을 돕는다. 새로운 Notification이 생성되거나 활성화될 때 추가 로깅이 표시된다. 또한 일반적인 동작이 수행될 때도 로그가 출력된다: Notification이 표시되거나, 닫히거나, 버튼이 클릭되거나, 답장이 작성될 때 등이다.

예제 출력:

Notification created (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification displayed (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification activated (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification replied to (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)

ELECTRON_LOG_ASAR_READS

Electron이 ASAR 파일에서 데이터를 읽을 때, 읽기 오프셋과 파일 경로를 시스템의 tmpdir에 기록한다. 이렇게 생성된 파일은 ASAR 모듈에 제공되어 파일 순서를 최적화하는 데 사용할 수 있다.

ELECTRON_ENABLE_STACK_DUMPING

Electron이 충돌할 때 콘솔에 스택 추적 정보를 출력한다.

crashReporter가 시작된 상태에서는 이 환경 변수가 동작하지 않는다.

ELECTRON_DEFAULT_ERROR_MODE Windows

Electron이 충돌할 때 Windows의 충돌 대화상자를 표시한다.

이 환경 변수는 crashReporter가 시작된 경우에는 작동하지 않는다.

ELECTRON_OVERRIDE_DIST_PATH

electron 패키지를 실행할 때, 이 변수를 사용하면 npm install로 다운로드된 Electron 대신 지정된 빌드를 사용하도록 electron 커맨드에 지시한다. 사용 방법은 다음과 같다:

export ELECTRON_OVERRIDE_DIST_PATH=/Users/username/projects/electron/out/Testing

Electron은 런타임에 여러분의 환경에 몇 가지 변수를 설정한다.

ORIGINAL_XDG_CURRENT_DESKTOP

이 변수는 애플리케이션이 처음 실행될 때 설정된 XDG_CURRENT_DESKTOP 값을 담고 있다. Electron은 때때로 Chromium 내부의 다른 로직에 영향을 주기 위해 XDG_CURRENT_DESKTOP 값을 수정한다. 따라서 원래 값을 확인하려면 이 환경 변수를 참조해야 한다.