빌드 가이드 (Windows)
사용자 정의 Electron 바이너리를 생성하기 위해 Windows에서 Electron 자체를 빌드하는 방법을 안내한다. 미리 빌드된 Electron 바이너리와 함께 앱 코드를 번들링하고 배포하는 방법은 애플리케이션 배포 가이드를 참고한다.
필수 조건
- Windows 10 / Server 2012 R2 이상
- Visual Studio 2019 (16.0.0 이상)로 빌드할 수 있지만, Visual Studio 2022 (17.0.0 이상)를 권장한다. Visual Studio 2022 Community Edition 무료 다운로드
- 필요한 Visual Studio 컴포넌트에 대한 자세한 내용은 Chromium 빌드 문서를 참고한다.
- Visual Studio가 기본 경로가 아닌 다른 디렉터리에 설치된 경우, 툴체인이 설치 경로를 찾을 수 있도록 몇 가지 환경 변수를 설정해야 한다.
vs2022_install = DRIVE:\path\to\Microsoft Visual Studio\2022\Community
에서2022
와Community
를 설치한 버전에 맞게 변경하고,DRIVE:
를 Visual Studio가 설치된 드라이브로 바꾼다. 일반적으로C:
드라이브다.WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10
에서DRIVE:
를 Windows Kits가 설치된 드라이브로 바꾼다. 일반적으로C:
드라이브다.
- Node.js
- Git
- 전체 배포판을 생성할 계획이라면 Windows SDK 10.0.15063.468의 Debugging Tools for Windows가 필요하다.
.pdb
파일에서 심볼 저장소를 생성하기 위해symstore.exe
를 사용하기 때문이다.- 서로 다른 버전의 SDK를 동시에 설치할 수 있다. SDK를 설치하려면 Visual Studio Installer를 열고
수정
→개별 구성 요소
를 선택한 후, 아래로 스크롤해 적절한 Windows SDK를 선택해 설치한다. 또는 Windows SDK 및 에뮬레이터 아카이브에서 독립 실행형 SDK 버전을 다운로드할 수도 있다. - SDK Debugging Tools도 설치해야 한다. Windows 10 SDK가 Visual Studio Installer를 통해 설치된 경우,
제어판
→프로그램
→프로그램 및 기능
→ "Windows 소프트웨어 개발 키트" 선택 →변경
→변경
→ "Debugging Tools For Windows" 체크 →변경
을 통해 설치할 수 있다. 또는 독립 실행형 SDK 설치 프로그램을 다운로드해 Debugging Tools를 설치할 수도 있다.
- 서로 다른 버전의 SDK를 동시에 설치할 수 있다. SDK를 설치하려면 Visual Studio Installer를 열고
현재 Windows가 설치되어 있지 않다면, developer.microsoft.com에서 Electron을 빌드할 수 있는 시간 제한 버전의 Windows를 사용할 수 있다.
Electron 빌드는 전적으로 커맨드라인 스크립트로 수행되며, Visual Studio로는 빌드할 수 없다. 어떤 편집기로도 Electron을 개발할 수 있지만, Visual Studio를 통한 빌드 지원은 추후 제공될 예정이다.
참고: Visual Studio가 빌드에 사용되지는 않지만, 여전히 필수다. 빌드 툴체인이 필요하기 때문이다.
Windows Security에서 소스 트리 제외하기
Windows Security는 Chromium 소스 코드 내 특정 파일을 문제로 간주한다 (참고: https://crbug.com/441184). 이로 인해 해당 파일이 지속적으로 삭제되며, gclient sync
명령 실행 시 문제가 발생할 수 있다. Windows Security의 모니터링에서 소스 트리를 제외하려면 다음 가이드를 따라 설정을 변경하면 된다.
빌드
GN 빌드 안내서를 참고한다.
32비트 빌드
32비트 타겟을 빌드하려면 GN 인자로 target_cpu = "x86"
를 전달해야 한다. 64비트 타겟과 함께 32비트 타겟을 빌드하려면 GN의 출력 디렉터리를 다르게 설정하면 된다. 예를 들어 out/Release-x86
와 같은 디렉터리를 사용하고, 각각 다른 인자를 전달할 수 있다.
$ gn gen out/Release-x86 --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x86\""
나머지 빌드 단계는 동일하다.
Visual Studio 프로젝트 생성
Visual Studio 프로젝트를 생성하려면 gn gen
명령어에 --ide=vs2017
파라미터를 추가한다:
$ gn gen out/Testing --ide=vs2017
문제 해결
xxxx 명령어를 찾을 수 없음
Command xxxx not found
와 같은 오류가 발생하면, VS2015 Command Prompt
콘솔을 사용해 빌드 스크립트를 실행해 볼 수 있다.
치명적인 내부 컴파일러 오류: C1001
최신 Visual Studio 업데이트가 설치되어 있는지 확인하세요.
LNK1181: 'kernel32.lib' 입력 파일을 열 수 없음
32비트 Node.js를 다시 설치해 보세요.
오류: ENOENT, 'C:\Users\USERNAME\AppData\Roaming\npm' 경로를 찾을 수 없음
해당 디렉터리를 생성하면 문제를 해결할 수 있다:
$ mkdir ~\AppData\Roaming\npm
node-gyp가 내부 또는 외부 명령으로 인식되지 않는다는 오류가 발생할 수 있다. 이 문제는 Git Bash를 사용해 빌드할 때 발생한다. 이 경우 PowerShell이나 VS2015 커맨드 프롬프트를 대신 사용해야 한다.
'...' 디렉토리를 생성할 수 없음: 파일 이름이 너무 깁니다
Node.js는 매우 긴 경로 이름을 사용하는 경우가 있습니다. 기본적으로 Windows의 Git은 긴 경로 이름을 올바르게 처리하지 못합니다(Windows 자체는 이를 지원함). 이 문제를 해결하려면 다음 명령어를 실행하세요:
$ git config --system core.longpaths true
이 오류는 Windows Driver Kit과 함께 Debugging Tools for Windows가 설치된 상태에서 빌드할 때 발생할 수 있다. 이 문제를 해결하려면 Windows Driver Kit을 제거하고, 앞서 설명한 단계에 따라 Debugging Tools를 다시 설치해야 한다.
이 버그는 윈도우 커맨드 프롬프트의 '기능' 중 하나다. QuickEdit
가 활성화된 상태에서 프롬프트 창 내부를 클릭하면 발생한다. 이 기능은 출력된 텍스트를 쉽게 선택하고 복사할 수 있도록 설계되었다. 그러나 실수로 클릭할 때마다 빌드 프로세스가 일시 중지되므로, 커맨드 프롬프트 속성에서 이 기능을 비활성화하는 것이 좋다.