본문 바로가기
FE/electron

electron 패키징과 배포 그리고 업데이트

by livemehere 2023. 2. 12.

electron 은 core 모듈에 패키징하는 모듈이 포함되어있지 않고, 별도의 모듈인 @electron-forge/cli 를 사용해야한다.

세팅하기

npm install --save-dev @electron-forge/cli
npx electron-forge import

위 커맨드라인 실행으로 패키징에 필요한 script 와 추가적인 modules 을 설치한다.

그리고 forge.config.js 파일도 생성된다.

패키징

아래 cli 실행한 결과로 out 파일이 생성되고 패키징이 끝난다.

npm run make

서명

OS 별로 서명되지 않은 앱에 대해서 다운로드나 실행을 어렵게하는 서명 시스템이 있기 때문에 불특정 다수에게 배포될 앱이라면 forge.config.js 에서 서명을 해주는 것이 바람직하다.

배포와 자동업데이트

update.electronjs.org 를 통해서 public repository 라면 무료로 배포하고, 자동업데이트까지 지원할 수 있다.

npm install --save-dev @electron-forge/publisher-github
npm install update-electron-app

 

forege.config.js

module.exports = {
  publishers: [
    {
      name: '@electron-forge/publisher-github',
      config: {
        repository: {
          owner: 'github-user-name',
          name: 'github-repo-name',
        },
        prerelease: false,
        draft: true,
      },
    },
  ],
}

package.json

  //...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish"
  },
  //...

main.js

require('update-electron-app')()

위 과정을 세팅하고, 업데이트가 필요할 때 마다 배포를 해주면 자동으로 앱 실행시 업데이트를 체크한다.

하지만 아래의 조건을 충족해주어야한다.

  • Your app runs on macOS or Windows
  • Your app has a public GitHub repository
  • Builds are published to GitHub releases
  • Builds are code signed
반응형

'FE > electron' 카테고리의 다른 글

electron Process Model  (0) 2023.02.12
Electron 의 핵심 Preload  (2) 2023.02.11
Electron 핵심  (0) 2023.02.11