환경 변수
코드를 변경하지 않고 애플리케이션의 설정과 동작을 제어한다.
일부 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
값을 수정한다. 따라서 원래 값을 확인하려면 이 환경 변수를 참조해야 한다.