꾸준히 공부하는 개발자

[Electron.js] electron-builder 를 이용한 local, dev, prod 버젼 관리부터 s3 배포까지 본문

Electron.js

[Electron.js] electron-builder 를 이용한 local, dev, prod 버젼 관리부터 s3 배포까지

kauboy 2020. 6. 16. 19:00

electron으로 dev서버와 prod 서버를 동시에 관리해야 할 일이 생겼다.

 

electron-builder-dev.yml

productName: "example"
appId: "example-dev"

# Package electron code into a asar archive. Set to false to debug issues.
asar: true
protocols:
  - name: "Example-DEV"
    schemes:
      - ms-batchlabs
      - ms-batch-explorer

# Mac OS configuration
mac:
  icon: "./public/assets/icons/icon.png"

# Config for OSX dmg
dmg:
  title: "Example"

# Windows configuration
win:
  icon: "./public/assets/icons/icon.png"
  target:
    - "zip"
    - "nsis"

# Config for the windows installer
nsis:
  oneClick: false
  allowToChangeInstallationDirectory: true

# Linux configuration
linux:
  category: Development
  target:
    - "AppImage"
    - "deb"
    - "rpm"

directories:
  buildResources: "resources"
  output: "dist/"
  app: "."


publish:
  provider: "s3"
  bucket: "your-s3-bucket-name"
  acl: "public-read"

publish를 설정해둠으로써 bucket에 바로 업로드가 된다.

 

또한 iam을 aws/credential 의 default로 설정해두니 접근허용이 되어 자동으로 올라갈 수 있게 되었다.

 

 

package.json (일부분)

"scripts": {
    "react-start": "cp ./.env.test ./.env && react-scripts start",
    "start": "concurrently \"cross-env BROWSER=none npm run react-start\" \"wait-on http://localhost:3000 && electron .\"",
    "build": "cp ./.env.dev ./.env && react-scripts build",
    "build:production": "cp ./.env.prod ./.env && react-scripts build",
    "electron:dev": "npm run build && electron-builder --config ./electron-builder-dev.yml",
    "electron:prod": "npm run build:production && electron-builder --config ./electron-builder-prod.yml",
    "publish:dev": "npm run build && electron-builder --config ./electron-builder-dev.yml --win --publish always",
    "publish:prod": "npm run build:production && electron-builder --config ./electron-builder-prod.yml --publish always",
    "deploy": "bash scripts/deploy-dev.sh",
    "deploy:production": "bash scripts/deploy-prod.sh",
    "cypress": "cypress open"
  },

위의 scripts의 electron-builder --config ./electron-builder-dev.yml 을 이용하여 build를 따로 설정해 줄 수 있다.

이로써 electron-builder의 build 부분을 dev와 prod로 따로 관리할 수 있게 되었다.

 

 

참고: https://www.electron.build/configuration/configuration#environment-variables-from-file

Comments