Родитель
1ee565ab81
Коммит
373bed33c5
|
@ -6,11 +6,18 @@ URL에 포함되어 있습니다. 만약 그렇지 않다면, 아마 현재 보
|
|||
수 있습니다. 또한 GitHub 인터페이스의 "Switch branches/tags" 드롭다운 메뉴에서도
|
||||
사용 중인 Electron 버전으로 변경할 수 있습니다.
|
||||
|
||||
**역주:** 한국어 번역 문서는 atom.io에 반영이 되어있지 않습니다. 따라서 번역 문서는
|
||||
GitHub 프로젝트내에서만 볼 수 있고 `master` 브랜치의 문서는 현재 개발중인 프로젝트의
|
||||
**역주:** 한국어 번역 문서는 `atom.io`에 반영되어 있지 않습니다. 따라서 번역 문서는
|
||||
GitHub 프로젝트내에서만 볼 수 있으며 `master` 브랜치의 문서는 현재 개발중인 프로젝트의
|
||||
문서입니다. 한국어 번역 문서는 현재 `upstream` 원본 문서의 변경에 따라 최대한 문서의
|
||||
버전을 맞추려고 노력하고 있지만 가끔 누락된 번역이 존재할 수 있습니다.
|
||||
|
||||
## FAQ
|
||||
|
||||
Electron에 대해 자주 묻는 질문이 있습니다. 이슈를 생성하기 전에 다음 문서를 먼저
|
||||
확인해 보세요:
|
||||
|
||||
* [Electron FAQ](faq/electron-faq.md)
|
||||
|
||||
## 개발 가이드
|
||||
|
||||
* [지원하는 플랫폼](tutorial/supported-platforms.md)
|
||||
|
|
|
@ -77,73 +77,78 @@ win.show();
|
|||
몇몇 GTK+3 데스크톱 환경에서만 작동합니다. 기본값은 `false`입니다.
|
||||
* `transparent` Boolean - 윈도우 창을 [투명화](frameless-window.md)합니다. 기본값은
|
||||
`false`입니다.
|
||||
* `type` String - 특정 플랫폼에만 적용되는 윈도우 창의 종류를 지정합니다. 기본적으로
|
||||
이 속성이 `undefined`일 경우 표준 윈도우가 사용됩니다. 사용할 수 있는 창의 종류는
|
||||
다음과 같습니다:
|
||||
* Linux의 경우: `desktop`, `dock`, `toolbar`, `splash`, `notification` 종류를
|
||||
사용할 수 있습니다.
|
||||
* OS X의 경우: `desktop`, `textured` 종류를 사용할 수 있습니다. `textured` 종류는
|
||||
창을 그라디언트 형태로 표현합니다 (`NSTexturedBackgroundWindowMask`) `desktop`
|
||||
종류는 데스크탑 배경 레벨에 윈도우를 배치합니다 (`kCGDesktopWindowLevel - 1`).
|
||||
참고로 이렇게 만들어진 윈도우는 포커스, 키보드, 마우스 이벤트를 받을 수 없습니다.
|
||||
하지만 편법으로 `globalShortcut`을 통해 키 입력을 받을 수 있습니다.
|
||||
* `type` String - 특정 플랫폼에만 적용되는 윈도우 창의 종류를 지정합니다. 기본값은
|
||||
일반 윈도우 입니다. 사용할 수 있는 창의 종류는 아래를 참고하세요.
|
||||
* `standardWindow` Boolean - OS X의 표준 윈도우를 텍스쳐 윈도우 대신 사용합니다.
|
||||
기본 값은 `true`입니다.
|
||||
* `titleBarStyle` String, OS X - 윈도우 타이틀 바 스타일을 지정합니다. 이 속성은
|
||||
OS X 10.10 Yosemite 이후 버전만 지원합니다. 다음 3가지 종류의 값을 사용할 수
|
||||
있습니다:
|
||||
* `default` 또는 미지정: 표준 Mac 회색 불투명 스타일을 사용합니다.
|
||||
* `hidden`: 타이틀 바를 숨기고 컨텐츠 전체를 윈도우 크기에 맞춥니다.
|
||||
타이틀 바는 없어지지만 표준 창 컨트롤 ("신호등 버튼")은 왼쪽 상단에 유지됩니다.
|
||||
* `hidden-inset`: `hidden` 타이틀 바 속성과 함께 신호등 버튼이 윈도우 모서리로부터
|
||||
약간 더 안쪽으로 들어가도록합니다.
|
||||
* `titleBarStyle` String, OS X - 윈도우 타이틀 바 스타일을 지정합니다. 자세한 사항은
|
||||
아래를 참고하세요.
|
||||
* `webPreferences` Object - 웹 페이지 기능을 설정합니다. 사용할 수 있는 속성은
|
||||
다음과 같습니다:
|
||||
* `nodeIntegration` Boolean - node(node.js) 통합 여부. 기본값은 `true`입니다.
|
||||
* `preload` String - 스크립트를 지정하면 페이지 내의 다른 스크립트가 작동하기 전에
|
||||
로드됩니다. 여기서 지정한 스크립트는 node 통합 활성화 여부에 상관없이 언제나 모든
|
||||
node API에 접근할 수 있습니다. 이 속성의 스크립트 경로는 절대 경로로 지정해야
|
||||
합니다. node 통합이 비활성화되어있을 경우, preload 스크립트는 node의 global
|
||||
심볼들을 다시 global 스코프로 다시 포함 시킬 수 있습니다.
|
||||
[여기](process.md#event-loaded)의 예제를 참고하세요.
|
||||
* `partition` String - 페이지에서 사용할 세션을 지정합니다. 만약 `partition`이
|
||||
`persist:`로 시작하면 페이지는 지속성 세션을 사용하며 다른 모든 앱 내의
|
||||
페이지에서 같은 `partition`을 사용할 수 있습니다. 만약 `persist:` 접두어로
|
||||
시작하지 않으면 페이지는 인-메모리 세션을 사용합니다. 여러 페이지에서 같은
|
||||
`partition`을 지정하면 같은 세션을 공유할 수 있습니다. `partition`을 지정하지
|
||||
않으면 어플리케이션의 기본 세션이 사용됩니다.
|
||||
* `zoomFactor` Number - 페이지의 기본 줌 값을 지정합니다. 예를 들어 `300%`를
|
||||
표현하려면 `3.0`으로 지정합니다. 기본값은 `1.0`입니다.
|
||||
* `javascript` Boolean - 자바스크립트를 활성화합니다. 기본값은 `false`입니다.
|
||||
* `webSecurity` Boolean - `false`로 지정하면 same-origin 정책을 비활성화합니다.
|
||||
(이 속성은 보통 사람들에 의해 웹 사이트를 테스트할 때 사용합니다) 그리고
|
||||
`allowDisplayingInsecureContent`와 `allowRunningInsecureContent` 두 속성을
|
||||
사용자가 `true`로 지정되지 않은 경우 `true`로 지정합니다. 기본값은
|
||||
`true`입니다.
|
||||
* `allowDisplayingInsecureContent` Boolean - https 페이지에서 http URL에서
|
||||
로드한 이미지 같은 리소스를 표시할 수 있도록 허용합니다. 기본값은 `false`입니다.
|
||||
* `allowRunningInsecureContent` Boolean - https 페이지에서 http URL에서 로드한
|
||||
JavaScript와 CSS 또는 플러그인을 실행시킬 수 있도록 허용합니다. 기본값은
|
||||
`false`입니다.
|
||||
* `images` Boolean - 이미지 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `textAreasAreResizable` Boolean - HTML TextArea 요소의 크기를 재조정을
|
||||
허용합니다. 기본값은 `true`입니다.
|
||||
* `webgl` Boolean - WebGL 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `webaudio` Boolean - WebAudio 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `plugins` Boolean - 플러그인 활성화 여부를 지정합니다. 기본값은 `false`입니다.
|
||||
* `experimentalFeatures` Boolean - Chrome의 실험적인 기능을 활성화합니다.
|
||||
기본값은 `false`입니다.
|
||||
* `experimentalCanvasFeatures` Boolean - Chrome의 실험적인 캔버스(canvas) 기능을
|
||||
활성화합니다. 기본값은 `false`입니다.
|
||||
* `overlayScrollbars` Boolean - 오버레이 스크롤바를 활성화합니다. 기본값은
|
||||
`false`입니다.
|
||||
* `sharedWorker` Boolean - SharedWorker 기능을 활성화합니다. 기본값은
|
||||
`false`입니다.
|
||||
* `directWrite` Boolean - Windows에서 폰트 랜더링을 위해 DirectWrite를
|
||||
사용하는지를 지정합니다. 기본값은 `true`입니다.
|
||||
* `pageVisibility` Boolean - 현재 윈도우의 가시성을 반영하는 대신 페이지가
|
||||
visible 또는 hidden 중 지정된 상태를 계속 유지하도록 합니다. 이 속성을 `true`로
|
||||
지정하면 DOM 타이머의 스로틀링을 방지할 수 있습니다. 기본값은 `false`입니다.
|
||||
아래를 참고하세요.
|
||||
|
||||
`type` 속성에서 사용할 수 있는 값과 동작은 다음과 같으며, 플랫폼에 따라 다릅니다:
|
||||
|
||||
* Linux의 경우, `desktop`, `dock`, `toolbar`, `splash`, `notification` 종류를
|
||||
사용할 수 있습니다.
|
||||
* OS X의 경우, `desktop`, `textured` 종류를 사용할 수 있습니다.
|
||||
* `textured`는 창에 메탈 그라디언트 외관(`NSTexturedBackgroundWindowMask`)을
|
||||
설정합니다.
|
||||
* `desktop`은 데스크탑 배경 레벨(`kCGDesktopWindowLevel - 1`)에 윈도우를
|
||||
배치합니다. 참고로 이렇게 만들어진 윈도우는 포커스, 키보드, 마우스 이벤트를 받을
|
||||
수 없습니다. 하지만 편법으로 `globalShortcut`을 통해 키 입력을 받을 수 있습니다.
|
||||
|
||||
`titleBarStyle` 속성은 OS X 10.10 Yosemite 이후 버전만 지원하며, 다음 3가지 종류의
|
||||
값을 사용할 수 있습니다:
|
||||
|
||||
* `default` 또는 미지정: 표준 Mac 회색 불투명 스타일을 사용합니다.
|
||||
* `hidden`: 타이틀 바를 숨기고 컨텐츠 전체를 윈도우 크기에 맞춥니다.
|
||||
타이틀 바는 없어지지만 표준 창 컨트롤 ("신호등 버튼")은 왼쪽 상단에 유지됩니다.
|
||||
* `hidden-inset`: `hidden` 타이틀 바 속성과 함께 신호등 버튼이 윈도우 모서리로부터
|
||||
약간 더 안쪽으로 들어가도록합니다.
|
||||
|
||||
`webPreferences` 속성은 다음과 같은 속성을 가질 수 있습니다:
|
||||
|
||||
* `nodeIntegration` Boolean - node(node.js) 통합 여부. 기본값은 `true`입니다.
|
||||
* `preload` String - 스크립트를 지정하면 페이지 내의 다른 스크립트가 작동하기 전에
|
||||
로드됩니다. 여기서 지정한 스크립트는 node 통합 활성화 여부에 상관없이 언제나 모든
|
||||
node API에 접근할 수 있습니다. 이 속성의 스크립트 경로는 절대 경로로 지정해야
|
||||
합니다. node 통합이 비활성화되어있을 경우, preload 스크립트는 node의 global
|
||||
심볼들을 다시 global 스코프로 다시 포함 시킬 수 있습니다.
|
||||
[여기](process.md#event-loaded)의 예제를 참고하세요.
|
||||
* `partition` String - 페이지에서 사용할 세션을 지정합니다. 만약 `partition`이
|
||||
`persist:`로 시작하면 페이지는 지속성 세션을 사용하며 다른 모든 앱 내의
|
||||
페이지에서 같은 `partition`을 사용할 수 있습니다. 만약 `persist:` 접두어로
|
||||
시작하지 않으면 페이지는 인-메모리 세션을 사용합니다. 여러 페이지에서 같은
|
||||
`partition`을 지정하면 같은 세션을 공유할 수 있습니다. `partition`을 지정하지
|
||||
않으면 어플리케이션의 기본 세션이 사용됩니다.
|
||||
* `zoomFactor` Number - 페이지의 기본 줌 값을 지정합니다. 예를 들어 `300%`를
|
||||
표현하려면 `3.0`으로 지정합니다. 기본값은 `1.0`입니다.
|
||||
* `javascript` Boolean - 자바스크립트를 활성화합니다. 기본값은 `false`입니다.
|
||||
* `webSecurity` Boolean - `false`로 지정하면 same-origin 정책을 비활성화합니다.
|
||||
(이 속성은 보통 사람들에 의해 웹 사이트를 테스트할 때 사용합니다) 그리고
|
||||
`allowDisplayingInsecureContent`와 `allowRunningInsecureContent` 두 속성을
|
||||
사용자가 `true`로 지정되지 않은 경우 `true`로 지정합니다. 기본값은
|
||||
`true`입니다.
|
||||
* `allowDisplayingInsecureContent` Boolean - https 페이지에서 http URL에서
|
||||
로드한 이미지 같은 리소스를 표시할 수 있도록 허용합니다. 기본값은 `false`입니다.
|
||||
* `allowRunningInsecureContent` Boolean - https 페이지에서 http URL에서 로드한
|
||||
JavaScript와 CSS 또는 플러그인을 실행시킬 수 있도록 허용합니다. 기본값은
|
||||
`false`입니다.
|
||||
* `images` Boolean - 이미지 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `textAreasAreResizable` Boolean - HTML TextArea 요소의 크기를 재조정을
|
||||
허용합니다. 기본값은 `true`입니다.
|
||||
* `webgl` Boolean - WebGL 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `webaudio` Boolean - WebAudio 지원을 활성화합니다. 기본값은 `true`입니다.
|
||||
* `plugins` Boolean - 플러그인 활성화 여부를 지정합니다. 기본값은 `false`입니다.
|
||||
* `experimentalFeatures` Boolean - Chrome의 실험적인 기능을 활성화합니다.
|
||||
기본값은 `false`입니다.
|
||||
* `experimentalCanvasFeatures` Boolean - Chrome의 실험적인 캔버스(canvas) 기능을
|
||||
활성화합니다. 기본값은 `false`입니다.
|
||||
* `directWrite` Boolean - Windows에서 폰트 랜더링을 위해 DirectWrite를
|
||||
사용하는지를 지정합니다. 기본값은 `true`입니다.
|
||||
* `blinkFeatures` String - `CSSVariables,KeyboardEventKey`같은 `,`로 구분된
|
||||
기능 문자열들의 리스트입니다. 지원하는 전체 기능 문자열들은
|
||||
[setFeatureEnabledFromString][blink-feature-string] 함수에서 찾을 수 있습니다.
|
||||
|
||||
## Events
|
||||
|
||||
|
@ -747,3 +752,5 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고
|
|||
* `ignore` Boolean
|
||||
|
||||
윈도우에서 일어나는 모든 마우스 이벤트를 무시합니다.
|
||||
|
||||
[blink-feature-string]: https://code.google.com/p/chromium/codesearch#chromium/src/out/Debug/gen/blink/platform/RuntimeEnabledFeatures.cpp&sq=package:chromium&type=cs&l=527
|
||||
|
|
|
@ -119,6 +119,14 @@ TLS fallback에서 사용할 SSL/TLS 최소 버전을 지정합니다. ("tls1",
|
|||
|
||||
SSL 암호화를 비활성화할 대상 목록을 지정합니다. (`,`로 구분)
|
||||
|
||||
## --disable-renderer-backgrounding
|
||||
|
||||
Chromium이 랜더러 프로세스의 보이지 않는 페이지의 우선순위를 낮추는 것을 방지합니다.
|
||||
|
||||
이 플래그는 전역적이며 모든 랜더러 프로세스에 적용됩니다. 만약 하나의 윈도우창에만
|
||||
스로틀링을 비활성화하고 싶다면 [조용한 오디오를 재생하는][play-silent-audio] 핵을 사용할
|
||||
수 있습니다.
|
||||
|
||||
## --enable-logging
|
||||
|
||||
Chromium의 로그를 콘솔에 출력합니다.
|
||||
|
@ -149,3 +157,4 @@ Chromium의 로그를 콘솔에 출력합니다.
|
|||
[app]: app.md
|
||||
[append-switch]: app.md#appcommandlineappendswitchswitch-value
|
||||
[ready]: app.md#event-ready
|
||||
[play-silent-audio]: https://github.com/atom/atom/pull/9485/files
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# global-shortcut
|
||||
# globalSortcut
|
||||
|
||||
`global-shortcut` 모듈은 운영체제의 전역 키보드 단축키를 등록/해제 하는 방법을
|
||||
`globalShortcut` 모듈은 운영체제의 전역 키보드 단축키를 등록/해제 하는 방법을
|
||||
제공합니다. 이 모듈을 사용하여 사용자가 다양한 작업을 편하게 할 수 있도록 단축키를
|
||||
정의 할 수 있습니다.
|
||||
|
||||
|
@ -38,26 +38,29 @@ app.on('will-quit', function() {
|
|||
|
||||
## Methods
|
||||
|
||||
`global-shortcut` 모듈은 다음과 같은 메서드를 가지고 있습니다:
|
||||
`globalShortcut` 모듈은 다음과 같은 메서드를 가지고 있습니다:
|
||||
|
||||
### `globalShortcut.register(accelerator, callback)`
|
||||
|
||||
* `accelerator` [Accelerator](accelerator.md)
|
||||
* `callback` Function
|
||||
|
||||
`accelerator`로 표현된 전역 단축키를 등록합니다. 유저로부터 등록된 단축키가 눌렸을
|
||||
경우 `callback` 함수가 호출됩니다. `accelerator` 단축키가 등록되었을 경우
|
||||
`true`를 반환합니다. 그 외엔 `false`를 반환합니다. 예를 들어 지정한
|
||||
`accelerator`가 이미 다른 호출자 또는 네이티브 어플리케이션에서 등록된 상태를
|
||||
생각할 수 있습니다.
|
||||
`accelerator`의 전역 단축키를 등록합니다. 유저로부터 등록된 단축키가 눌렸을 경우
|
||||
`callback` 함수가 호출됩니다.
|
||||
|
||||
accelerator가 이미 다른 어플리케이션에서 사용 중일 경우, 이 작업은 조용히 실패합니다.
|
||||
이러한 동작은 어플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
|
||||
위해 운영체제에 의해 예정된 동작입니다.
|
||||
|
||||
### `globalShortcut.isRegistered(accelerator)`
|
||||
|
||||
* `accelerator` [Accelerator](accelerator.md)
|
||||
|
||||
지정된 `accelerator` 단축키가 등록되었는지 여부를 확인합니다. 반환값은 boolean값
|
||||
입니다.
|
||||
지정된 `accelerator` 단축키가 등록되었는지 여부를 확인합니다.
|
||||
|
||||
Accelerator가 이미 다른 어플리케이션에서 사용 중일 경우, 여전히 `false`를 반환합니다.
|
||||
이러한 동작은 어플리케이션이 전역 키보드 단축키를 가지고 충돌이 일어나지 않도록 하기
|
||||
위해 운영체제에 의해 예정된 동작입니다.
|
||||
|
||||
### `globalShortcut.unregister(accelerator)`
|
||||
|
||||
|
|
|
@ -54,6 +54,24 @@ app.on('ready', function() {
|
|||
});
|
||||
```
|
||||
|
||||
## `Display` 객체
|
||||
|
||||
`Display` 객체는 시스템에 연결된 물리적인 디스플레이를 표현합니다. 헤드레스(headless)
|
||||
시스템에선 가짜 `Display` 객체가 보여지거나 리모트(remote), 가상 디스플레이에
|
||||
해당하게 됩니다.
|
||||
|
||||
* `display` object
|
||||
* `id` Integer - 디스플레이에 관련된 유일 식별자.
|
||||
* `rotation` Integer - 값은 0, 1, 2, 3이 될 수 있고, 각 값은 시계 방향을 기준으로
|
||||
0, 90, 180, 270도의 화면 회전 상태로 표현됩니다.
|
||||
* `scaleFactor` Number - 기기의 픽셀 스케일 크기.
|
||||
* `touchSupport` String - 터치 스크린의 여부, `available`, `unavailable`,
|
||||
`unknown` 값으로 반환됩니다.
|
||||
* `bounds` Object
|
||||
* `size` Object
|
||||
* `workArea` Object
|
||||
* `workAreaSize` Object
|
||||
|
||||
## Events
|
||||
|
||||
`screen` 모듈은 다음과 같은 이벤트를 가지고 있습니다:
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
# Electron FAQ
|
||||
|
||||
## 언제 Electron이 최신 버전의 Chrome으로 업그레이드 되나요?
|
||||
|
||||
Electron의 Chrome 버전은 보통 새로운 Chrome 안정 버전이 릴리즈 된 이후 1주 내지 2주
|
||||
내로 업데이트됩니다.
|
||||
|
||||
또한 우리는 크롬의 안정된 채널만을 이용합니다, 만약 중요한 수정이 베타 또는 개발 채널인
|
||||
경우, 우리는 해당 버전 대신 이전 버전을 다시 사용합니다.
|
||||
|
||||
## Electron은 언제 최신 버전의 Node.js로 업그레이드 하나요?
|
||||
|
||||
새로운 버전의 Node.js가 릴리즈 되면, 우리는 보통 Electron을 업그레이드 하기 전에 한
|
||||
달 정도 대기합니다. 이렇게 하면 새로운 Node.js 버전을 업데이트 함으로써 발생하는
|
||||
버그들을 피할 수 있습니다. 이러한 상황은 자주 발생합니다.
|
||||
|
||||
Node.js의 새로운 기능은 보통 V8 업그레이드에서 가져옵니다. Electron은 Chrome
|
||||
브라우저에 탑재된 V8을 사용하고 있습니다. 눈부신 새로운 Node.js 버전의 자바스크립트
|
||||
기능은 보통 이미 Electron에 있습니다.
|
||||
|
||||
## 제작한 어플리케이션의 윈도우/트레이가 몇 분 후에나 나타납니다.
|
||||
|
||||
이러한 문제가 발생하는 이유는 보통 윈도우/트레이를 담은 변수에 가비지 컬렉션이 작동해서
|
||||
그럴 가능성이 높습니다.
|
||||
|
||||
이러한 문제를 맞닥뜨린 경우 다음 문서를 읽어보는 것이 좋습니다:
|
||||
|
||||
* [메모리 관리][memory-management]
|
||||
* [변수 스코프][variable-scope]
|
||||
|
||||
만약 빠르게 고치고 싶다면, 다음과 같이 변수를 전역 변수로 만드는 방법이 있습니다:
|
||||
|
||||
```javascript
|
||||
app.on('ready', function() {
|
||||
var tray = new Tray('/path/to/icon.png');
|
||||
})
|
||||
```
|
||||
|
||||
를 이렇게:
|
||||
|
||||
```javascript
|
||||
var tray = null;
|
||||
app.on('ready', function() {
|
||||
tray = new Tray('/path/to/icon.png');
|
||||
})
|
||||
```
|
||||
|
||||
## Electron에서 jQuery/RequireJS/Meteor/AngularJS를 사용할 수 없습니다.
|
||||
|
||||
Node.js가 Electron에 합쳐졌기 때문에, DOM에 `module`, `exports`, `require` 같은
|
||||
몇 가지 심볼들이 추가됬습니다. 따라서 같은 이름의 심볼을 사용하는 몇몇 라이브러리들과
|
||||
충돌이 발생할 수 있습니다.
|
||||
|
||||
이러한 문제를 해결하려면, Electron에서 node 포함을 비활성화시켜야 합니다:
|
||||
|
||||
```javascript
|
||||
// 메인 프로세스에서.
|
||||
var mainWindow = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration: false
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
하지만 Node.js의 기능과 Electron API를 유지하고 싶다면 페이지에 다른 라이브러리를
|
||||
추가하기 전에 심볼들의 이름을 변경해야 합니다:
|
||||
|
||||
```html
|
||||
<head>
|
||||
<script>
|
||||
window.nodeRequire = require;
|
||||
delete window.require;
|
||||
delete window.exports;
|
||||
delete window.module;
|
||||
</script>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
</head>
|
||||
```
|
||||
|
||||
[memory-management]: https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management
|
||||
[variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx
|
|
@ -106,14 +106,6 @@ MyApp.app/Contents
|
|||
아이콘은 [.desktop](https://developer.gnome.org/integration-guide/stable/desktop-files.html.en)
|
||||
파일을 사용하여 지정할 수 있습니다.
|
||||
|
||||
### 역주-자동화
|
||||
|
||||
어플리케이션 배포시 Electron의 리소스를 일일이 수정하는 것은 매우 반복적이고 복잡합니다.
|
||||
하지만 이 작업을 자동화 시킬 수 있는 몇가지 방법이 있습니다:
|
||||
|
||||
* [electron-builder](https://github.com/loopline-systems/electron-builder)
|
||||
* [electron-packager](https://github.com/maxogden/electron-packager)
|
||||
|
||||
## Electron 소스코드를 다시 빌드하여 리소스 수정하기
|
||||
|
||||
또한 Electron 소스코드를 다시 빌드할 때 어플리케이션 이름을 변경할 수 있습니다.
|
||||
|
@ -146,3 +138,11 @@ Electron의 소스코드를 수정하고 다시 빌드하는 작업은 상당히
|
|||
|
||||
이 툴을 사용하면 자동으로 `.gyp`파일을 수정하고 다시 빌드합니다. 그리고 어플리케이션의
|
||||
네이티브 Node 모듈 또한 새로운 실행파일 이름으로 일치시킵니다.
|
||||
|
||||
## 패키징 툴
|
||||
|
||||
어플리케이션을 일일이 수동으로 패키지로 만드는 대신, 서드 파티 패키징 툴을 사용하며
|
||||
이러한 작업을 자동화 시킬 수 있습니다:
|
||||
|
||||
* [electron-packager](https://github.com/maxogden/electron-packager)
|
||||
* [electron-builder](https://github.com/loopline-systems/electron-builder)
|
||||
|
|
|
@ -23,13 +23,30 @@ __참고:__ Electron은 현재 node-inspector 유틸리티와 호환성 문제
|
|||
node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐색할 경우 크래시가
|
||||
발생할 수 있습니다.
|
||||
|
||||
### 1. [node-inspector][node-inspector] 서버 시작
|
||||
### 1. [node-gyp 필수 도구][node-gyp-required-tools]를 설치했는지 확인
|
||||
|
||||
### 2. [node-inspector][node-inspector] 설치
|
||||
|
||||
```bash
|
||||
$ node-inspector
|
||||
$ npm install node-inspector
|
||||
```
|
||||
|
||||
### 2. Electron용 디버그 모드 활성화
|
||||
### 3. 패치된 버전의 `node-pre-gyp` 설치
|
||||
|
||||
```bash
|
||||
$ npm install git+https://git@github.com/enlight/node-pre-gyp.git#detect-electron-runtime-in-find
|
||||
```
|
||||
|
||||
### 4. Electron용 `node-inspector` `v8` 모듈을 재 컴파일 (target을 사용하는 Electron의 버전에 맞춰 변경)
|
||||
|
||||
```bash
|
||||
$ node_modules/.bin/node-pre-gyp --target=0.36.2 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall
|
||||
$ node_modules/.bin/node-pre-gyp --target=0.36.2 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall
|
||||
```
|
||||
|
||||
또한 [네이티브 모듈을 사용하는 방법](how-to-install-native-modules) 문서도 참고해보세요.
|
||||
|
||||
### 5. Electron 디버그 모드 활성화
|
||||
|
||||
다음과 같이 debung 플래그로 Electron을 실행할 수 있습니다:
|
||||
|
||||
|
@ -43,9 +60,18 @@ $ electron --debug=5858 your/app
|
|||
$ electron --debug-brk=5858 your/app
|
||||
```
|
||||
|
||||
### 3. 디버그 UI 로드
|
||||
### 5. Electron을 사용하는 [node-inspector][node-inspector] 시작
|
||||
|
||||
```bash
|
||||
$ ELECTRON_RUN_AS_NODE=true path/to/electron.exe node_modules/node-inspector/bin/inspector.js
|
||||
```
|
||||
|
||||
### 6. 디버거 UI 로드
|
||||
|
||||
Chrome 브라우저에서 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 주소에
|
||||
접속합니다. (기본포트 또는 지정한 포트로 접속)
|
||||
접속합니다. (기본 포트 또는 지정한 포트로 접속) 엔트리의 라인이 debug-brk로 시작하는
|
||||
경우 일시정지 버튼을 클릭해야 할 수도 있습니다.
|
||||
|
||||
[node-inspector]: https://github.com/node-inspector/node-inspector
|
||||
[node-gyp-required-tools]: https://github.com/nodejs/node-gyp#installation
|
||||
[how-to-install-native-modules]: using-native-node-modules.md#네이티브-모듈을-설치하는-방법
|
||||
|
|
Загрузка…
Ссылка в новой задаче