본문 바로가기

컴퓨터/Electron

Electron 모듈화

1. 모듈화 전 main.js

const { app, BrowserWindow } = require('electron');

// 새 브라우저 창을 생성하는 함수
function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,// 렌더러 프로세스에서 Node.js 통합을 활성화
      contextIsolation: false,// 렌더러 프로세스에 대한 컨텍스트 격리를 비활성화
    },
  });
}

// 앱이 준비되면 새 창을 생성
async function startApp() {
  await app.whenReady();
  const mainWindow = createWindow();
}
startApp();

// 모든 창이 닫히면 애플리케이션을 종료 (macOS 제외)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

// 앱이 활성화될 때 새 창을 생성 (macOS에서만)
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

2. 모듈화 후

  1) createWindow.js

// createWindow.js

const { BrowserWindow } = require('electron');

// 브라우저 창을 생성하는 함수를 내보내기
module.exports = function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
    },
  });
};

  2) main.js

const { app } = require('electron');
const createWindow = require('./createWindow');

// 앱이 준비되면 새 창을 생성
async function startApp() {
  await app.whenReady();
  const mainWindow = createWindow();
}
startApp();

// 모든 창이 닫히면 애플리케이션을 종료 (macOS 제외)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

// 앱이 활성화될 때 새 창을 생성 (macOS에서만)
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

'컴퓨터 > Electron' 카테고리의 다른 글

Electron path  (0) 2023.04.24
Electron HTML 보여주기  (0) 2023.04.24
Electron 상단 메뉴 (main menu)  (0) 2023.04.24
Electron MariaDB  (0) 2023.04.23
Electron 아이콘 icon  (0) 2023.04.23