electron

electron 배포 및 자동 업데이트(github)

아너 2023. 1. 30. 16:13

 

참조 링크

https://blog.naver.com/PostView.nhn?blogId=danaramm&logNo=221743906453&parentCategoryNo=&categoryNo=23&viewDate=&isShowPopularPosts=true&from=search 

 

Electron - (10) autoUpdater electron-updater

이전편 이전편 코드를 기반으로 자동 업데이트 기능을 구현해보겠습니다. 자동 업데이트에는 electron-upda...

blog.naver.com

https://programmerk.tistory.com/55

 

vue - electron - github release - ( 1 )

electron 의 경우 build 시 page를 가져올때 외부 url 에서 가져오는 방식과 자신의 프로젝트에서 가져오는 방식을 선택하여 build 할 수 있습니다 자신의 project에서 page를 가져올떄 문제점이 하나 있는

programmerk.tistory.com

 

사용 버전

 

-node v14.20.0 

-npm v6.14.17 

-electron v22.0.1 

-vue v2.6.11 

 

Github배포 순서 

 

1. electron updater 모듈 설치 

yarn add electron-updater electron-log 

-> 4.6.5버전으로 downgrade 해야 

2. github access token 발급 => ghp_XXXXXXXXXXXXXXXXXXX

3. 환경변수 설정 -> GH_TOKEN 생성컴퓨터 재부팅 

4. github release설정 package.json, vue.config.js  

5. git push 진행 후 release 배포 

npm run electron:build -- -p always 

6. github releases 페이지에 올라온 draft publish 

 

Vue.config.js 

-설치 옵션 지정 파일 

Ex) Window 앱 아이콘 이미지, installer 앱 이미지, 앱 설치 경로 사용자 지정선택(true일 경우, 바탕화면 아이콘 지운재설치하면 바로가기 아이콘 재생성)

module.exports = {
    pluginOptions: {
        electronBuilder: {
            builderOptions: {
                productName: "testProduct",
                appId: 'test.com',
                //win 설치옵션 테스트 완료
                win: {
                    "target": ["nsis"],
                    icon: 'public/icon.png',
                    //"requestedExecutionLevel": "requireAdministrator"
                },
                "nsis": {
                    "installerIcon": "public/icon.ico",
                    "uninstallerIcon": "public/icon.ico",
                    //"uninstallDisplayName": "CPU Monitor",
                    "oneClick": false,
                    //dir위치변경
                    "allowToChangeInstallationDirectory": true,
                    "createDesktopShortcut": true,
                    //"createStartMenuShortcut": true
                },
                publish: ['github']
            },
        }
    }
}