Electron 문서1.4.1

Docs / Development / 소스 코드 디렉터리 구조

소스 코드 디렉터리 구조

Electron의 소스 코드는 몇 개의 파트로 분리되어 있습니다. 그리고 Chromium의 분리 규칙(separation conventions)을 주로 따르고 있습니다.

이미 Chromium의 멀티 프로세스 아키텍쳐에 익숙해져 있다면 소스 코드를 이해하기 쉬울 것입니다.

소스 코드 구조

Electron
├── atom/ - C++ 소스 코드.
|   ├── app/ - 시스템 엔트리 코드.
|   ├── browser/ - 주 윈도우를 포함한 프론트엔드, UI, 그리고 메인 프로세스에 관련된
|   |   코드와 렌더러 및 웹 페이지 관리 관련 코드.
|   |   ├── ui/ - 서로 다른 플랫폼에 대한 UI 관련 구현 코드.
|   |   |   ├── cocoa/ - Cocoa 특정 소스 코드.
|   |   |   ├── win/ - Windows GUI 특정 소스 코드.
|   |   |   └── x/ - X11 특정 소스 코드.
|   |   ├── api/ - 메인 프로세스 API의 구현.
|   |   ├── net/ - 네트워킹 관련 코드.
|   |   ├── mac/ - Mac 특정 Objective-C 소스 코드.
|   |   └── resources/ - 아이콘들, 플랫폼 의존성 파일들, 기타 등등..
|   ├── renderer/ - 렌더러 프로세스에서 작동하는 코드.
|   |   └── api/ - 렌더러 프로세스 API의 구현.
|   └── common/ - 메인과 렌더러 프로세스에서 모두 사용하는 코드, 몇가지 유틸리티
|       함수들이 포함되어 있고 node의 메시지 루프와 Chromium의 메시지 루프를 통합.
|       └── api/ - 공통 API 구현들, 기초 Electron 빌트-인 모듈들.
├── chromium_src/ - Chromium에서 복사하여 가져온 소스 코드.
├── default_app/ - Electron에 앱이 제공되지 않았을 때 보여지는 기본 페이지.
├── docs/ - 참조 문서.
├── lib/ - JavaScript 소스 코드.
|   ├── browser/ - Javascript 메인 프로세스 초기화 코드.
|   |   └── api/ - Javascript API 구현 코드.
|   ├── common/ - 메인과 렌더러 프로세스에서 모두 사용하는 JavaScript
|   |   └── api/ - Javascript API 구현 코드.
|   └── renderer/ - Javascript 렌더러 프로세스 초기화 코드.
|       └── api/ - Javascript API 구현 코드.
├── spec/ - 자동화 테스트.
├── electron.gyp - Electron의 빌드 규칙.
└── common.gypi - 컴파일러 설정 및 `node` 와 `breakpad` 등의 구성요소를 위한 빌드
    규칙.

그외 디렉터리 구조

Git 서브 모듈 최신 버전으로 유지

Electron 저장소는 몇 가지 외부 벤더 의존성을 가지고 있으며 /vendor 디렉터리에서 확인할 수 있습니다. 때때로 git status를 실행했을 때 아마 다음과 같은 메시지를 흔히 목격할 것입니다:

$ git status

	modified:   vendor/brightray (new commits)
	modified:   vendor/node (new commits)

이 외부 의존성 모듈들을 업데이트 하려면, 다음 커맨드를 실행합니다:

git submodule update --init --recursive

만약 자기 자신이 너무 이 커맨드를 자주 사용하는 것 같다면, ~/.gitconfig 파일을 생성하여 편하게 업데이트할 수 있습니다:

[alias]
	su = submodule update --init --recursive

고쳐야 할 것이 있습니까? 소스에서 변경을 제안할 수 있습니다.
다른 버전의 문서가 필요한가요? 이전 버전 또는 커뮤니티 번역을 보세요.
모든 문서를 한번에 검색하고 싶으신가요? 한 페이지 문서를 보세요.