최적화

electron 패키징 결과 파일은 기본적으로 크기가 크다

이유

  • Chromium 엔진
    • Electron은 웹 콘텐츠를 렌더링하기 위해 Chromium 엔진을 포함
    • 이 엔진은 매우 크며, 렌더링 기능을 제공하기 위해 많은 파일 포함
  • Node.js 통합
    • Electron은 Node.js 런타임을 포함하여 Node.js 기능을 사용
  • Electron 바이너리
    • Electron 자체 바이너리도 포함

최적화 방법

  • 압축 사용: electron-builder는 압축을 통해 최종 패키지의 크기를 줄일 수 있음
  • 불필요한 파일 제거: .npmignore 또는 files 필드를 사용하여 패키지에 포함할 파일을 명시적으로 지정
  • Code Signing: 이 과정은 실제로 크기를 줄이는 것과는 무관하지만, 배포 시 중요한 단계
{
  "name": "output",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-builder --config build-config.json"
  },
  "description": "",
  "devDependencies": {
    "electron": "^30.0.7",
    "electron-builder": "^24.13.3"
  },
  "build": {
    "appId": "com.example.mkdocs",
    "files": [
      "main.js",
      "site/**/*"
    ],
    "directories": {
      "output": "dist"
    },
    "compression": "maximum",  // 최적의 압축을 위해 추가
    "extraResources": [
      "main.js",
      "site/**/*"
    ],
    "extraMetadata": {
      "main": "main.js"
    }
  }
}