배경회사 개발 업무 중 ZeroMQ 를 무조건 사용해야하는 상황이 생겼다.협력사들이 다 이걸 쓰고 있다고 하니 맞춰야하는 상황이다. 대충보니 ZeroMQ는 아주 간단한 메세지 통신에 사용하기에 좋아 보였다. 사용법도 간단했다.근데 문제는 Electron Framework에 넣고 게다가 라즈베리파이 ( arm64) 환경에서 이 앱이 돌아가야 했기에.. 실행해봤다.하....AJavaScript error occurred in the main processUncaught Exception:Error: Failed to load zeromq.js addon.node: Error: ENOENT, node_modules/zeromq/build/linux/arm64/node not found in /tmp/.mou..
자바스크립트/Electron Framework
이슈Window NSIS 빌드 후 윈도우에서 실행시 위 사진과 같은 경고창과 함께 설치가 불가한 이슈 발생 {프로그램명} cannot be closed. Please close it manually and click retry to continue. (무한 다시시도)발생 버전Electron Builder 25.1.7테스트 시행 결과22.14 버전에선 이슈가 없음.Github Issue 서치 결과 문자열의 길이가 길어서 발생한 이슈라고들 하지만, C:\ 로 설치폴더를 지정하고 최대한 글을 짧게 해도 발생됨을 확인 해결 방안 (총 3가지)CRC Check Off 처리 node_modules/app-builder-lib/templates/nsis/common.nsh 에서 맨 마지막 줄 CRCCheck off ..
ESM 지원 CommonJS로만 개발되던 많은 프로그램들이 ESM을 지원하는 경우가 점점 늘고 있다. 대표적인 예로 몇 가지를 들어보면 google Lighthouse, Express.js , Mongoose (MongoDB ODM)등을 들 수 있다. 국내에서는 카카오테크에서 작성한 CommonJS에서 ESM으로 전환하기를 보면 다음의 문장을 확인할 수 있다. 구글의 Lighthouse 10 버전은 모듈 시스템이 CommonJS에서 ESM으로 전환되었기 때문에 CommonJS의 require() 함수로는 ESM 시스템의 모듈을 불러올 수 없게 되어있다 CommonJS에서 ESM으로 전환하기 안녕하세요, FE플랫폼팀에서 FE 개발자를 위한 개발을 담당하는 Ethan입니다. 이 글에서는 운영 중인 서비스에서..
에러 $ C:\Test\node_modules\.bin\electron-builder --config ./buildConfig.json --win --x64 -p always • electron-builder version=24.9.1 os=10.0.22631 • loaded configuration file=C:\Test\buildConfig.json • writing effective config file=C:\build\builder-effective-config.yaml • packaging platform=win32 arch=x64 electron=28.2.0 appOutDir=C:\build\win-unpacked • downloading url=https://github.com/electro..
위 사례처럼 고정포트를 내부 로컬서버에서 사용해야하는 경우를 비롯해 중복으로 켜지면 곤란한 상황에는 무조건 하나의 인스턴스만 켜질 수 있도록 아래의 코드를 추가한다. // only one instance const insLock = app.requestSingleInstanceLock(); if (!insLock) { app.quit(); }
Electron Framework 를 VsCode에서 개발진행하는 경우 디버깅을 하기 위해서는 설정이 필요하다. 다음 그림과 같이 내부 .vscode 폴더를 만든 후 launch.json 파일을 만들어준다. launch.json 내용은 다음과 같다. { "version": "0.1.0", "configurations": [ { "name": "Debug Main Process", "type": "node", "request": "launch", "cwd": "${workspaceFolder}", "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", "windows": { "runtimeExecutable": "${workspaceFo..
본 내용은 MacOS 환경에서 일렉트론빌드 사용시 별도 코드사인 인증서를 가지고 서명 처리하는 부분에 대해 다루고 있다. 사실 윈도우의 경우에도 별반 다를게 없고, 내용중엔 윈도우 관련 키값을 별도로 표시해두었으니 참고하여도 좋을 듯 싶다. Code Sign (코드사인) 인증서란 ? 프로그램 코드의 무결성을 보증하기 위한 전자서명이다. 코드사인 인증서는 제 3자에 의해 변경되거나 손상되지 않았음을 확인하는 방법으로 응용프로그램, Cab파일 서명, 드라이버서명, WHQL등 디지털 서명하는데 사용된다. 인증서를 통해 서명,회사 이름, 원하는 경우 시간서명이 포함되며 코드사이닝 인증서는 사용자가 설치 또는 시작 시 경고 메시지를 받지 못하도록 하여 보안에 이상적이다. (인증서 종류에 따라서는 맥의 경우에는 즉..
기존에 잘 패키징(빌드)되던 electron project가.. sqlite3를 포함했다는 이유로 안된다. 인텔 맥, Apple 실리콘 맥, 리눅스까진 잘 되는데, 윈도우에서 이슈가 발생한다. 오류는 아래 사진과 같다. 더보기 yarn run v1.22.19 warning ../../package.json: No license field $ /Users/god-logger/apps/client/node_modules/.bin/electron-builder --config ./buildConfig_dev.json --win --x64 -p always • electron-builder version=24.3.0 os=22.4.0 • loaded configuration file=/Users/god-logg..
Electron Framework에는 다양한 AutoUpdater 방법이 있다. 기본적으로 제공하는 autoUpdater 모듈로는 Squirrel 방식인데 이전에 써보았을때 보면 확실히 업데이트 되는지도 모르게 알아서 업데이트 해주는게 인상적이였다. 다만 내 경우엔 기본 모듈인 autoUpdater를 쓰지 않고 있는데, 배포시에 electron-builder를 통해 패키징을 하기 때문에 electron-builder 에서 권장하는 electron-autoupdater를 사용하는 편이다. Electron-AutoUpdater를 사용하기 위해서는 별도의 서버를 필요로 하는데, 상황에 따라 github이나 s3를 이용하는 방법도 있으나 이번 포스팅엔 별도 서버를 활용하는 방법에 대해서만 서술할 예정이다. 기본..