Electron 설정
CRA 프로젝트에 Electron 추가
CRA 프로젝트 생성
cross-env 설치
electron 설치
public/electron.js 설정
yarn 설치
package.json 변경
실행
CRA 프로젝트 생성
create-react-app 프로젝트를 생성한다
npx create-react-app electron-demo
cross-env 설치
Windows와 Linux 기반 운영체제는 환경 설정 방식이 다르므로 이를 공통으로 처리하는 cross-env를 설치하여 명령을 수행한다.
npm install cross-env
Electron 설치
Electron은 개발용(devDependency)로 설치해야 한다.
npm install --save-dev electron electron-builder
package.json
파일을 열었을 때 다음과 같이 추가되어 있어야 한다.
{
//... 생략 ...
"devDependencies": {
"electron": "^22.0.0",
"electron-builder": "^23.6.0"
}
}
electron 진입점 생성
public
폴더에 electron.js
혹은 본인이 원하는 이름으로 electron 진입점을 생성한다.
const {app, BrowserWindow} = require('electron');
const path = require('path');
const url = require('url');
function createWindow() {
const win = new BrowserWindow({
width:1920,
height:1080
});
const startUrl = process.env.ELECTRON_START_URL || url.format({
pathname: path.join(__dirname, '/../build/index.html'),
protocol: 'file:',
slashes: true
});
win.loadURL(startUrl);
}
app.on('ready', createWindow);
yarn 설치
electron 실행 명령에 사용할 yarn 을 설치한다.
--global
옵션을 부여하여 전역 설치한다.
npm install yarn --global
package.json 설정
앞에서 준비한 내용들을 기반으로 electron이 실행될 수 있는 명령을 생성한다.
headless-start - 브라우저 없이 React 앱 실행 명령
electron-start - Electron 앱 실행 명령
electron-build - Electron 앱 빌드 명령
{
//... 다른 속성들은 생략 ...
"scripts": {
//... 기존 명령은 유지(생략) ...
"headless-start": "cross-env BROWSER=none react-scripts start",
"electron-start": "cross-env ELECTRON_START_URL=http://localhost:3000 electron .",
"electron-build": "yarn build && electron-builder build -c.extraMetadata.main=build/electron.js"
},
}
또한 파일상단에 홈페이지와 main 파일에 대해서 알려준다.
{
//... 다른 속성들은 생략 ...
"main": "public/electron.js",
"homepage": "./",
//... 다른 속성들은 생략 ...
}
실행
개발할 때는 먼저 react app을 실행하고 electron을 실행하여 웹뷰(WebView) 형태로 사용한다.
npm run headless-start
npm run electron-start
빌드
빌드는 다음 명령으로 한다.
npm run electron-build
dist
폴더에 설치 파일이 생성된다.
Last updated