Electron 28.0.0
Electron 28.0.0이 출시되었습니다! 이번 버전은 Chromium 120.0.6099.56
, V8 12.0
, 그리고 Node.js 18.18.2
로 업그레이드되었습니다.
Electron 팀은 Electron 28.0.0 출시를 기쁘게 발표합니다. npm install electron@latest
명령어를 통해 npm으로 설치하거나 릴리스 웹사이트에서 직접 다운로드할 수 있습니다. 이번 릴리스에 대한 자세한 내용은 계속해서 읽어보세요.
여러분의 피드백은 트위터나 마스토돈을 통해 공유하거나, 커뮤니티 디스코드에 참여해 주세요. 버그 및 기능 요청은 Electron의 이슈 트래커에 보고할 수 있습니다.
주요 변경 사항
하이라이트
- ECMAScript 모듈(ESM) 지원을 구현했다. (ECMAScript 모듈이란 무엇인가? 여기서 자세히 알아보기). 이는 Electron 자체뿐만 아니라
UtilityProcess
API 진입점과 같은 영역에서도 ESM을 지원한다. 자세한 내용은 ESM 문서를 참고한다. - Electron 자체에서 ESM 지원을 활성화하는 것 외에도, Electron Forge도 ESM을 사용해 Electron 애플리케이션을 패키징, 빌드, 개발하는 것을 지원한다. 이 기능은 Forge v7.0.0 이상에서 사용할 수 있다.
스택 변경 사항
- Chromium
120.0.6099.56
- Chrome 119 및 DevTools 119의 새로운 기능
- Chrome 120 및 DevTools 120의 새로운 기능
- Node
18.18.2
- V8
12.0
새로운 기능
- ESM 지원 활성화. #37535
- 자세한 내용은 ESM 문서를 참고.
UtilityProcess
API에 ESM 진입점 추가. #40047display
객체에detected
,maximumCursorSize
,nativeOrigin
등 여러 속성 추가. #40554- 리눅스에서
ELECTRON_OZONE_PLATFORM_HINT
환경 변수 지원 추가. #39792
주요 변경 사항
동작 변경: WebContents.backgroundThrottling
을 false로 설정하면 호스트 BrowserWindow
내의 모든 WebContents
에 영향을 미침
WebContents.backgroundThrottling
을 false로 설정하면 해당 BrowserWindow
에 표시된 모든 WebContents
의 프레임 스로틀링이 비활성화된다.
제거됨: BrowserWindow.setTrafficLightPosition(position)
BrowserWindow.setTrafficLightPosition(position)
은 더 이상 사용되지 않는다. 대신 BrowserWindow.setWindowButtonPosition(position)
API를 사용해야 한다. 이 새로운 API는 위치를 시스템 기본값으로 재설정하기 위해 { x: 0, y: 0 }
대신 null
을 인자로 받는다.
// Electron 28에서 제거됨
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });
// 대체 코드
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);
제거됨: BrowserWindow.getTrafficLightPosition()
BrowserWindow.getTrafficLightPosition()
메서드가 제거되었다. 이제는 BrowserWindow.getWindowButtonPosition()
API를 사용해야 한다. 이 메서드는 커스텀 위치가 없을 때 { x: 0, y: 0 }
대신 null
을 반환한다.
// Electron 28에서 제거됨
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// 커스텀 위치가 없음.
}
// 대체 코드
const ret = win.getWindowButtonPosition();
if (ret === null) {
// 커스텀 위치가 없음.
}
삭제됨: ipcRenderer.sendTo()
ipcRenderer.sendTo()
API가 삭제되었다. 이 기능은 두 렌더러 사이에 MessageChannel
을 설정하여 대체해야 한다.
IpcRendererEvent
의 senderId
와 senderIsMainFrame
속성도 함께 삭제되었다.
제거됨: app.runningUnderRosettaTranslation
app.runningUnderRosettaTranslation
프로퍼티가 제거되었다.
대신 app.runningUnderARM64Translation
을 사용한다.
// 제거됨
console.log(app.runningUnderRosettaTranslation);
// 대체 코드
console.log(app.runningUnderARM64Translation);
25.x.y 버전 지원 종료
Electron 25.x.y 버전은 프로젝트의 지원 정책에 따라 지원이 종료되었다. 개발자와 애플리케이션은 더 새로운 버전의 Electron으로 업그레이드하는 것을 권장한다.
E28 (2023년 12월) | E29 (2024년 2월) | E30 (2024년 4월) |
---|---|---|
28.x.y | 29.x.y | 30.x.y |
27.x.y | 28.x.y | 29.x.y |
26.x.y | 27.x.y | 28.x.y |
다음 단계
단기적으로는 Electron 팀이 Chromium, Node, V8과 같은 주요 컴포넌트의 개발 속도를 따라잡는 데 계속 집중할 것으로 예상된다.
Electron의 공개 타임라인은 여기에서 확인할 수 있다.
향후 변경 사항에 대한 더 자세한 정보는 예정된 주요 변경 사항 페이지에서 찾아볼 수 있다.